2016-03-17 29 views
1

我有两个表的MySQL连接两个查找

产品

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 

我想查找的产品并返回类别和子类别我已经reserached做到这一点的屁股canot让我周围的头最好的方式,我负责使用以下返回一个查找。

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 

我也想回到子类别它返回,增加另外加入不工作,这是我在哪里卡住了,

回答

3

你只需要两个join小号:

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; 

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