我有两张桌子:'购买'和'订单'。
购买表将purchase_id作为主键,并存储customer_id和购买详细信息,例如total。
'orders'表存储与每次购买相关的所有商品详情,因此它有purchase_id,stock_id,quantity等。
我想实施一个查询,从“购买”表中选择购买详情,从“订单”表中选择商品详情。两个表共享'customer_id'列。我一直在互联网上搜索,发现我正在寻找的查询叫做JOIN。但是,我不知道使用哪个JOIN查询(即:INNER JOIN,LEFT JOIN等等),即使我已经查看了w3schools上的示例,我也在努力理解它是如何工作的。有人可以帮忙吗?
答案 0 :(得分:1)
JOIN用于组合两个或多个表中的行。
INNER JOIN-返回找到“JOIN”的所有行并返回结果表。
SELECT table1.column1, table2.column2
FROM table1
INNER JOIN table2
ON table1.common_field = table2.common_field;
LEFT JOIN-就像它说“返回”左表“中的行一样,即使在右表中找不到匹配项。
SELECT table1.column, table2.column2
FROM table1
LEFT JOIN table2
ON table1.common_field = table2.common_field;
youtube上有一段视频可以更好地解释
答案 1 :(得分:0)
这将选择ID为1且所有相关购买的所有订单。
SELECT * FROM orders LEFT JOIN purchases ON purchases.purchase_id = orders.purchase_id WHERE orders.order_id = 1;
INNER JOIN
和LEFT JOIN
之间的区别在于,如果没有购买一个订单,LEFT JOIN
会将订单及其购买列返回null。如果订单没有购买,INNER JOIN
将不会返回任何行。