[英]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
我需要做的是从product
和product_description
表中获取产品名称,描述和图像,产品应该只来自store_id = 0 or 1
的product_store
表。
product_store
表只包含product_id
和store_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.