繁体   English   中英

用条件连接3个mysql表

[英]join 3 mysql tables with condition

我有3张桌子

product
-product_id
-name
-image

product_description
-product_id
-product_description
-product_attributes

product_store
-product_id
-store_id

我需要做的是从productproduct_description表中获取产品名称,描述和图像,产品应该只来自store_id = 0 or 1product_store表。

product_store表只包含product_idstore_id字段

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

SELECT p.product_id, pd.name,p.image FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) order by p.product_id DESC LIMIT 3

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

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两次,并重复行。

在聚会中添加第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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM