使用DISTINCT的MySQL查询返回许多可能选项中的一个

使用DISTINCT的MySQL查询返回许多可能选项中的一个,mysql,Mysql,很难为这部电影想出一个好的标题。我有一个从表中选择产品的查询。每个产品可能属于多个类别。因此,当我将“category”添加到我的DISTINCT查询中时,它有时会返回同一产品的多个,因为该产品属于多个类别。我希望我的查询只选择其中一个类别并返回它,不管是哪一个。 我的问题是: SELECT DISTINCT ci.NAME, ci.pid, ci.description, ci.price, ci.saleprice, ci.ingredients,

很难为这部电影想出一个好的标题。我有一个从表中选择产品的查询。每个产品可能属于多个类别。因此,当我将“category”添加到我的DISTINCT查询中时,它有时会返回同一产品的多个,因为该产品属于多个类别。我希望我的查询只选择其中一个类别并返回它,不管是哪一个。 我的问题是:

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分组如果要生成正确的结果,我需要进行更多测试。我假设它只是选择它找到的第一个类别。