使用DISTINCT的MySQL查询返回许多可能选项中的一个
很难为这部电影想出一个好的标题。我有一个从表中选择产品的查询。每个产品可能属于多个类别。因此,当我将“category”添加到我的DISTINCT查询中时,它有时会返回同一产品的多个,因为该产品属于多个类别。我希望我的查询只选择其中一个类别并返回它,不管是哪一个。 我的问题是:使用DISTINCT的MySQL查询返回许多可能选项中的一个,mysql,Mysql,很难为这部电影想出一个好的标题。我有一个从表中选择产品的查询。每个产品可能属于多个类别。因此,当我将“category”添加到我的DISTINCT查询中时,它有时会返回同一产品的多个,因为该产品属于多个类别。我希望我的查询只选择其中一个类别并返回它,不管是哪一个。 我的问题是: SELECT DISTINCT ci.NAME, ci.pid, ci.description, ci.price, ci.saleprice, ci.ingredients,
SELECT DISTINCT ci.NAME,
ci.pid,
ci.description,
ci.price,
ci.saleprice,
ci.ingredients,
ci.allergens AS allergens,
ci.isfood,
ci.quantity,
ci.ismostpopular,
ci.activedate,
ci.isfrozen,
cc.NAME AS category
FROM cart_category cc
JOIN cart_item_category cic
ON cc.id = cic.catid
JOIN cart_item ci
ON cic.itemref = ci.itemref
WHERE cc.active = 1
AND ci.active = 1
AND ci.isdeleted = 0
AND ci.isfrozen = 0
AND ( ci.NAME LIKE '%dark%'
OR ci.pid = '%dark%' )
AND ci.quantity > 5
AND cc.NAME <> "nutritionals";
选择不同的ci.NAME,
ci.pid,
ci.description,
ci.price,
塞莱斯,
ci.成分,
ci.作为过敏原的过敏原,
ci.isfood,
ci.数量,
最受欢迎的词,
ci.activedate,
我被冻结了,
抄送名称作为类别
来自购物车类别cc
加入购物车\商品\类别cic
在cc.id=cic.catid上
加入购物车项目ci
关于cic.itemref=ci.itemref
其中cc.active=1
和ci.active=1
和ci.isdeleted=0
和ci.isfronged=0
和(ci.NAME,如“%dark%”
或ci.pid=“%dark%”)
ci.quantity>5
和抄送名称“营养品”;
当我添加时,cc.name as category
是指它返回多个相同产品。尝试限制它:
... 限制1只返回1个产品。我需要它返回与搜索匹配的所有产品。将join替换为子查询并限制子查询。您可以按产品id分组按产品id分组如果要生成正确的结果,我需要进行更多测试。我假设它只是选择它找到的第一个类别。