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

时间:2013-08-25 20:27:16

标签: sql

我正在使用此网站http://www.sqlishard.com/Exercise

练习基本SQL

以下是问题:

S5.0 - INNER JOIN

  

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

     

尝试使用INNER JOIN语法从中选择所有列   客户和订单表,其中订单中的CustomerId列   匹配Customers中的Id列。由于两个表都有Id   在列中,您需要在WHERE子句中限定Customers ID   使用表名或表别名。

以下是我的回答:

SELECT *
FROM Customers AS c
INNER JOIN Orders AS o ON c.ID = o.ID
WHERE o.CustomerID = c.ID

该网站说我错了?谁能解释我哪里出错?

编辑:我现在看到我不需要WHERE子句,但问题是......

  

您需要使用WHERE子句限定Customers ID   表名或表别名。

因此我的困惑。非常感谢。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

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