gpt4 book ai didi

MySQL - 如果前缀为空,则将表设置为默认值

转载 作者:行者123 更新时间:2023-11-29 11:05:51 24 4
gpt4 key购买 nike

我有一段代码不是我写的。它包括特定的 SQL 查询。

对于我个人的使用,我想通过 LEFT JOIN 到另一个表来部分更改它,但代码更改最少。

问题:有几个不明确的字段。

由于 SQL 查询相当大,并且动态地来自原始代码中的其他函数,因此为所有不明确的字段添加前缀让我很烦恼。

我的问题是:有没有办法只为我的 LEFT JOIN 中的新表添加前缀,并使 MySQL 将没有前缀的字段视为表 A?

示例:

SELECT id, table2.fieldB FROM table1 LEFT JOIN table2 ON table2.id = id WHERE id > 10;

所有没有前缀的“id”出现都链接到 table1。

如果没有,我的其他解决方案是什么?

基本上,我不想触及大条件,因为它是动态的并且来自代码中的其他函数,我不想到处改变它。

谢谢。

最佳答案

您应该限定所有列名称。这只是一个很好的实践,它使代码更易于理解和维护。

也就是说,如果使用 USING 子句,则不需要限定联接中使用的列名称。事实上,您不应该限定这些名称。因此,您可以安全地编写:

SELECT id, t2.fieldB
FROM table1 t1 LEFT JOIN
table2 t2
USING (id)
WHERE id > 10;

注意:要使 USING 子句发挥作用,两个表中的列需要具有相同的名称。无论如何,我认为这是一个最佳实践——外键与主键具有相同的名称(通常不是一个简单的 id)。

此外,您还可以使用表别名来减少限定列名称时的输入量。

关于MySQL - 如果前缀为空,则将表设置为默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41409682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com