MySQL加入两个查找

时间:2016-03-17 17:51:38

标签: mysql join

我有两张桌子

产品

id
code
description
category
subcategory

product_categorys

id
category_name
category_master

产品表格中的数据

1, UK001, Description Text, 1, 2

product_category 表中的数据

1, Network Cable,  0
2, CAT6, 1

我想查找产品并返回类别和子类别我已经研究了最好的方法来做这件事但是我已经设法使用以下方法返回一个查找。

SELECT products.product_code, products.description, product_category.category_name, product_category.category_name
FROM products
LEFT JOIN product_category ON product_category.id = products.category AND product_category.ID = products.subcategory
ORDER BY description ASC

按预期返回

UK001, Description Text, Network Cables

我也想要返回子类别,添加另一个连接不起作用,这就是我被困住的地方,

1 个答案:

答案 0 :(得分:3)

您只需要两个join s:

SELECT p.product_code, p.description, pc.category_name, pcs.category_name
FROM products p LEFT JOIN
     product_category pc
     ON pc.id = p.category LEFT JOIN
     product_category pcs
     ON pcs.ID = p.subcategory
ORDER BY description ASC;

还要注意表别名的使用。这些使查询更容易编写和阅读。