用条件连接3个mysql表

时间:2014-03-14 13:44:58

标签: mysql sql join

我有3张桌子

product
-product_id
-name
-image

product_description
-product_id
-product_description
-product_attributes

product_store
-product_id
-store_id

我需要做的是从productproduct_description表中获取产品名称,描述和图像,产品应仅来自product_store表{{1} }}

store_id = 0 or 1表只包含product_storeproduct_id字段

到目前为止,我已加入产品和product_description表。但是我仍然试图加入store_id表来检查产品是否来自正确的商店。

product_store

任何人都可以告诉我如何加入第3张表并检查它是否来自正确的store_id?

2 个答案:

答案 0 :(得分:1)

select distinct p.product_id, d.name, p.image
from product p join product_description d on
  p.product_id = d.product_id join product_store s on
  p.product_id = s.product_id
where
  s.store_id in (0, 1)
order by p.product_id DESC LIMIT 3

DISTINCT是必要的,因为您可以与product_store一起加入两次,并重复行。

答案 1 :(得分:1)

在聚会中添加第3个表(我的意思是JOIN),如下所示:

SELECT p.product_id, pd.name,p.image 
FROM product p 
LEFT JOIN product_description pd 
ON (p.product_id = pd.product_id)
JOIN product_store ps
ON (p.product_id = ps.product_id AND ps.store_id IN (0,1))
ORDER BY p.product_id DESC 
LIMIT 3