Mysql连接查询;它是什么,我如何实现它?

时间:2014-04-17 15:44:42

标签: mysql sql join mysqli

我有两张桌子:'购买'和'订单'。

购买表将purchase_id作为主键,并存储customer_id和购买详细信息,例如total。

'orders'表存储与每次购买相关的所有商品详情,因此它有purchase_id,stock_id,quantity等。

我想实施一个查询,从“购买”表中选择购买详情,从“订单”表中选择商品详情。两个表共享'customer_id'列。我一直在互联网上搜索,发现我正在寻找的查询叫做JOIN。但是,我不知道使用哪个JOIN查询(即:INNER JOIN,LEFT JOIN等等),即使我已经查看了w3schools上的示例,我也在努力理解它是如何工作的。有人可以帮忙吗?

2 个答案:

答案 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上有一段视频可以更好地解释

Youtube

答案 1 :(得分:0)

这将选择ID为1且所有相关购买的所有订单。

SELECT * FROM orders LEFT JOIN purchases ON purchases.purchase_id = orders.purchase_id WHERE orders.order_id = 1;

INNER JOINLEFT JOIN之间的区别在于,如果没有购买一个订单,LEFT JOIN会将订单及其购买列返回null。如果订单没有购买,INNER JOIN将不会返回任何行。