2016-04-18 8 views
0

これは良いタイトルを思い付くことができませんでした。私は私のテーブルから製品を選択するクエリを持っています。各製品は、複数のカテゴリに属する​​ことができます。したがって、DISTINCTクエリに「カテゴリ」を追加すると、その製品が複数のカテゴリに属する​​ため、複数の同じ製品が返されることがあります。私は私の質問がちょうどカテゴリーの1つを選んでそれを返すことを望んでいますが、どちらが問題ではありません。ここ は私のクエリです:DISTINCTを使用したMySQLクエリは、多くの可能なオプションから1つを返します

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"; 

私はcc.name as categoryに追加すると、それは、同じ製品の複数を返すときです。

答えて

0

はちょうどそれを制限しよう: ... LIMIT 1

+0

ちょうど1つの製品を返すこと。検索に合った商品をすべて返す必要があります。 – dmikester1

+0

サブクエリで結合を置換し、サブクエリをLIMITします。 – Thinkeye

+1

商品IDでグループ化することができます – dkameleon

関連する問題