我正在查看示例
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;
来自W3Schools,我想知道我应该如何将这些条款归为一组。据我所知,每个SQL查询都返回一个表,查询中的子句本身可以返回一个表。所以我想到了整个
Orders INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID
作为一个表格,我通过对其应用SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
来返回它的子表。这是思考问题的正确方法吗?
答案 0 :(得分:1)
您可以将每个查询视为组成具有所需结果的新临时表。这个来自Orders
和Customers
的行,根据两个表中的CustomerID
字段(连接的on
子句)匹配它们,然后返回几个来自Orders
(OrderID
和OrderDate
)的字段以及来自Customers
(CustomerName
)的字段。
答案 1 :(得分:0)
基本上,您将返回一个包含SELECT语句中所有列的新表。如果您将查询简化为:
<img />
您将获得整个Orders表的打印输出,但只有您指定的两列。
使用INNER JOIN,您将过滤结果,仅包含CustomerID与Customers表中具有相同CustomerID的类似行匹配的订单。使用SELECT语句,您将添加一个列,显示与这些订单匹配的客户名称。
所以INNER JOIN的ON部分只是将客户与他们各自的订单相匹配。 SELECT部分是您创建新输出表的地方,其中包含您感兴趣的三列。
这有帮助吗?