如何在SQL中连接三个表?

如何在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; 
+0

嗨,如果我想要得到的第一个项目,而不必指定?我真正想要做的是让更新状态的人获得。如果有2件商品,订单仅由一个人处理,则它将被计为同一人的2件交易,因为有两件商品。有没有解决方法?谢谢。 – user6065154

+0

您使用的是Sql Server吗? – Irshad

+0

我正在使用工作台创建我的查询。 – user6065154