gpt4 book ai didi

sql - INNER JOIN 的列名不明确 SQL 错误 : Why?

转载 作者:行者123 更新时间:2023-12-02 12:13:38 25 4
gpt4 key购买 nike

以下代码将从两个表中选择数据:

SELECT t1.foo, t2.bar FROM TABLE1 t1 INNER JOIN TABLE2 t2 ON t1.foo=t2.foo

我可以很容易地写

SELECT t2.foo, t2.bar FROM TABLE1 t1 INNER JOIN TABLE2 t2 ON t1.foo=t2.foo

t1.foot2.foo:一个或六个中的六个。为什么不只是foo

我一直想知道为什么 SQL Server 不自动返回数据而无需我指定一个表或另一个表,因为选择完全是任意的(据我所知)。

我可以编造一个您需要指定表格的场景,例如

SELECT t1.foo, t2.bar FROM TABLE1 t1 INNER JOIN TABLE t2 ON t1.foo+=t2.foo

但是,根据我的经验,这种情况远非常态。

任何人都可以告诉我为什么该语言的设计使得我必须在代码中做出这个看似武断的决定吗?

最佳答案

因为 MS SQL 中的相等并不一定意味着它们在您想要的值中相等。考虑 foo 的以下 2 个值:“Bar”、“baR”。由于比较中固有的大小写不敏感,Sql 会认为它们在连接方面是相等的,但是您要求的是哪一个? SQL Server 不知道,也无法猜测。您必须明确地告诉它。

编辑:正如 @Lukas Eder 所说,并非所有 SQL 实现都使用不区分大小写的比较。我知道 MS SQL 使用不区分大小写,我的回答就是考虑到这个概念。

关于sql - INNER JOIN 的列名不明确 SQL 错误 : Why?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5966331/

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