2017-02-23 23 views
0

我有4個表MySQL的PHP​​加入4個表和它們的匹配2對另一列

產品,PRODUCT_DESCRIPTION,product_to_category,category_description

下面列舉一下我的表有欄目

產品

| product_id |模型|數量


PRODUCT_DESCRIPTION

| product_id | language_id |名稱|說明


product_to_category

| product_id | category_id |


category_description

| category_id | language_id |名稱|描述|


我能加入product_to_categorycategory_descriptionCATEGORY_ID又如何呢?


這裏是我到目前爲止的代碼和它的作品,我也加入了他們的的product_id 3個表,但因爲它沒有我不能加入category_description一個PRODUCT_ID

的想法後面我的代碼是從category_description


得到

回答

1

是的你可以,我也使用了顯式連接而不是隱式連接。因爲我認爲這是最佳做法。

SELECT * FROM product p 
INNER JOIN product_description pd ON pd.product_id = p.product_id 
INNER JOIN product_to_category ptc ON ptc.product_id = p.product_id 
INNER JOIN category_description cd ON cd.category_id = ptc.category_id 
WHERE pd.language_id = 2 
+0

什麼是PD,PTC和CD是什麼意思? – Innervisions

+0

這些被稱爲表名中的別名。 – Daan

+0

哦,好吧,我的回聲代碼有什麼變化?我如何回顯類別的名稱和產品端的名稱,他們都有行「名稱」 – Innervisions

1

要參加所有4個表,下面是查詢:

SELECT * FROM product p 
JOIN product_description pd ON p.product_id = pd.product_id 
JOIN product_to_category pc ON p.product_id = pc.product_id 
JOIN category_description cd ON pc.category_id = cd.category_id 
WHERE pd.language_id = 2 
相關問題