0

我在这个网站http://www.sqlishard.com/Exercise练习基本的 SQL

这是问题:

S5.0 - 内连接

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

尝试使用 INNER JOIN 语法从 Customers 和 Orders 表中选择 Orders 中的 CustomerId 列与 Customers 中的 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 子句中的客户 ID。

因此我的困惑。还是谢谢。

4

2 回答 2

3

试试这个方法:

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
于 2013-08-25T20:29:00.040 回答
3

如果使用 JOIN..ON,则不需要 where 子句

于 2013-08-25T20:29:17.897 回答