SQL - 使用重复键连接表

时间:2015-01-08 21:59:56

标签: sql join

我正在学习SQL JOIN,但我无法理解在给定方案中使用什么类型的联接。我将非常感谢能够更好地解释JOIN用法的材料链接/建议!

以下是我不明白的具体情况:

基本表格结构

'Orders' table
--
OrderNumber, CustomerID, ...

'Order_Details' table
--
OrderNumber, ProductID, ...

实施例

Orders
--
1000, 1
1001, 2
1002, 1
1003, 1
...

Order_Details
--
1000, Product1
1000, Product2
1000, Product3
1001, Product2
1001, Product3
...

期望的结果:我想要列出销售给特定客户的所有产品。我知道OrderNumber是'链接/密钥'这两个表之间,但我不确定使用什么类型的查询。

示例结果:

CustomerID | ProductID
1            Product1
1            Product2
1            Product3
1            Product2
...

我可以使用哪种类型的查询来实现此结果?

2 个答案:

答案 0 :(得分:1)

如果您需要:"销售给特定客户的所有产品清单"

那么你想要的是什么(用你要搜索的客户ID替换1)

SELECT o.CustomerID, od.ProductID
FROM orders o
INNER JOIN order_details od ON o.OrderNumber = od.OrderNumber
WHERE o.CustomerID=1

答案 1 :(得分:0)

这要求简单,直接的加入:

SELECT CustomerID, ProductID
FROM   orders o
JOIN   order_details od ON o.OrderNumber = od.OrderNumber