我有以下表格。一个订单号表,购买商品表和另一个交货状态表。
Table1(order_number) Table2(items) Table3(status)
01 0001 shipped
01 0001 delivered
01 0002 shipped
01 0002 delivered
我的查询要做的是获取订单号,从table2获取一个项目及其状态历史记录。查询应输出此内容。
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
答案 0 :(得分:0)
您可能需要提供有关所需项目的一些详细信息。否则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
这是My SQL语法;
SELECT column_name(s)
FROM table_name
LIMIT number;