我在codeigniter模型中使用这个数据库查询。
SELECT
p.product_id,
p.product_name,
p.product_photo,
p.size,
p.price,
p.status,
p.product_image_path
FROM
products AS p
LEFT JOIN
product_category AS pc
ON
p.product_id = pc.product_id
LEFT JOIN
vendor_products AS vp
ON
vp.product_id = pc.product_id
WHERE
pc.category_id = 2
AND
vp.vendor_id = 36
AND
pc.subcategory_id IN (1,2)
AND
pc.subcategory_value_id IN (1,4)
它还给了我:
我只想要那些满足子类别值id的所有条件的产品。现在它返回所有条件。
我是数据库新手,对查询不太了解。
3条答案
按热度按时间tzcvj98z1#
下面的查询将根据给定的供应商标识、类别标识、子类别标识和子类别值标识,为您提供具有产品标识和产品名称的不同产品。
让我知道这是否适合你!
vm0i2vca2#
你想要什么
group by
以及having
. 有点不清楚你所说的“所有条件”是什么意思,但它看起来是这样的:笔记:
这个
WHERE
子句将LEFT JOIN
变成一个INNER JOIN
,所以用右边的JOIN
.我假设您需要子类别表中的值对。
这个
HAVING
子句坚持两个子类匹配。eoigrqb63#
似乎你不应该用左连接
product_category
table。left join关键字返回左表中的所有记录(product_category
)请尝试以下方式: