如何在SQL中连接三个表?
问题描述:
我有以下表格。订单号码一张表格,购买物品表格以及另一张交付状态表格。如何在SQL中连接三个表?
Table1(order_number) Table2(items) Table3(status)
01 0001 shipped
01 0001 delivered
01 0002 shipped
01 0002 delivered
我想为我的查询做的就是订单号,并从表2和它们的历史状态得到一个项目。查询应该输出这个。
Table1(order_number) Table2(items) Table3(status)
01 0001 shipped
01 0001 delivered
到目前为止,我只能把所有的项目,但不能提取只有一个项目。这是我的代码示例。
SELECT
table2.item
, table1.order_nr
, tabl3.name AS status
FROM table1
LEFT JOIN table2 ON table1.order = table2.order
LEFT JOIN table3 ON table2.item = table3.item
答
您可能需要提供一些您需要的项目的详细信息。否则sql将返回满足您的查询的所有数据。
引入WHERE
子句并告诉sql到底需要显示什么。
例如下面的查询将返回项目的状态001
SELECT
table2.item,
table1.order_nr,
tabl3.name as status
FROM
table1
LEFT JOIN
table2 ON table1.order = table2.order
LEFT JOIN
table3 ON table2.item = table3.item
WHERE table2.item = 0001
或者正如你所提到的,如果你需要得到一个记录使用LIMIT
关键字
SELECT
table2.item,
table1.order_nr,
tabl3.name as status
FROM
table1
LEFT JOIN
table2 ON table1.order = table2.order
LEFT JOIN
table3 ON table2.item = table3.item
LIMIT 1
这是我的SQL语法;
SELECT column_name(s)
FROM table_name
LIMIT number;
嗨,如果我想要得到的第一个项目,而不必指定?我真正想要做的是让更新状态的人获得。如果有2件商品,订单仅由一个人处理,则它将被计为同一人的2件交易,因为有两件商品。有没有解决方法?谢谢。 – user6065154
您使用的是Sql Server吗? – Irshad
我正在使用工作台创建我的查询。 – user6065154