2017-02-23 24 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 
相关问题