2016-03-17 73 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; 

還要注意使用表別名。這些使查詢更容易編寫和閱讀。