Sql 我加入此查询有什么问题?

Sql 我加入此查询有什么问题?,sql,Sql,我在这个网站上练习基本SQL 问题是: S5.0-内部连接 现在我们可以从单个表中提取数据并限定列 名字,让我们更进一步。JOIN语句允许我们 使用定义的条件将多个表的行“连接”在一起 他们是如何相互匹配的。从FirstTable内部选择[columns] 在FirstTable.Id=SecondTable.FirstTableId上联接SecondTable 尝试使用内部联接语法从列表中选择所有列 Customers和Orders表中的CustomerId列 匹配客户中的Id列。因为两个表都

我在这个网站上练习基本SQL

问题是:

S5.0-内部连接

现在我们可以从单个表中提取数据并限定列 名字,让我们更进一步。JOIN语句允许我们 使用定义的条件将多个表的行“连接”在一起 他们是如何相互匹配的。从FirstTable内部选择[columns] 在FirstTable.Id=SecondTable.FirstTableId上联接SecondTable

尝试使用内部联接语法从列表中选择所有列 Customers和Orders表中的CustomerId列 匹配客户中的Id列。因为两个表都有一个Id 列中,您需要在WHERE子句中限定客户id 使用表名或表别名

以下是我的答案:

SELECT *
FROM Customers AS c
INNER JOIN Orders AS o ON c.ID = o.ID
WHERE o.CustomerID = c.ID
网站说我错了?谁能解释一下我哪里出了问题

编辑:我明白了,现在我不需要WHERE子句,但问题是

您需要在WHERE子句中使用 表名或表别名

因此我感到困惑。尽管如此,还是非常感谢。

请尝试以下方法:

SELECT c.ID,o.ID
FROM Customers AS c
INNER JOIN Orders AS o ON o.CustomerID = c.ID
或者使用where子句

SELECT *
FROM Customers AS c, Orders AS o
where o.CustomerID = c.ID
试着这样做:

SELECT c.ID,o.ID
FROM Customers AS c
INNER JOIN Orders AS o ON o.CustomerID = c.ID
或者使用where子句

SELECT *
FROM Customers AS c, Orders AS o
where o.CustomerID = c.ID


如果你用JOIN。。在上,如果使用JOIN,则不需要where子句。。在上,您不需要where子句,您的
where
子句是多余的。联接的部分上的
sufficient@KenKeenan-再次检查,
ON
子句不正确,
WHERE
子句包含正确的谓词。为什么?根据问题,我需要在WHERE子句?@MatBailie中限定客户ID,正如问题所述,“因为两个表都有一个ID列”,我假设c.ID=o.ID上的
是可以的。但是这个问题的措辞非常糟糕,指的是一个不需要的
WHERE
子句…@DavidFolksman-这个问题措词很糟糕。它试图引用前面问题中您需要做的事情。您的
WHERE
子句是多余的。联接的
部分上的
sufficient@KenKeenan-再次检查,
ON
子句不正确,
WHERE
子句包含正确的谓词。为什么?根据问题,我需要在WHERE子句?@MatBailie中限定客户ID,正如问题所述,“因为两个表都有一个ID列”,我假设c.ID=o.ID上的
是可以的。但是这个问题的措辞非常糟糕,指的是一个不需要的
WHERE
子句…@DavidFolksman-这个问题措词很糟糕。它试图引用你在前面的问题中需要做的事情。我只是感到困惑,因为这个问题说明我需要在WHERE中限定表名clause@Dijkgraaf,订单id和客户id不是一回事。您没有将它们连接在一起。正如一个补充问题:当您只需在FROM子句中指定两个表时,连接需要什么?@DavidFolksman-第二个查询中的语法被ANSI-92标准中第一个查询中的语法所取代(如1992年)。它更显式、可维护,更适合于更复杂的查询。不要花时间学习表1、表2、表3中的
SELECT*,其中…
符号,除非您正在学习最近的历史。或者我只是感到困惑,因为问题说明我需要在WHERE中限定表名clause@Dijkgraaf,订单id和客户id不是一回事。您没有将它们连接在一起。正如一个补充问题:当您只需在FROM子句中指定两个表时,连接需要什么?@DavidFolksman-第二个查询中的语法被ANSI-92标准中第一个查询中的语法所取代(如1992年)。它更显式、可维护,更适合于更复杂的查询。不要花时间学习表1、表2、表3中的
SELECT*,其中…
符号,除非您正在学习最近的历史。或