0

テーブルを作成する必要があり、それらを SQL クエリで結合したいと考えています。それは世界で最も簡単なことかもしれませんが...まあ。

テーブル「カウント」:

-----------------------------
¦ id   ¦ segment    ¦ count ¦
"""""""""""""""""""""""""""""
¦ 1    ¦ fruits     ¦ 0     ¦
-----------------------------
¦ 2    ¦ sweets     ¦ 2     ¦
-----------------------------

テーブル「食べ物」:

-------------------------------------
¦ id   ¦ type            ¦ segment  ¦ 
"""""""""""""""""""""""""""""""""""""
¦ 1    ¦ banana          ¦ fruits   ¦
-------------------------------------
¦ 2    ¦ cranberries     ¦ fruits   ¦
-------------------------------------
¦ 3    ¦ strawberries    ¦ fruits   ¦
-------------------------------------
¦ 4    ¦ chocolate       ¦ sweets   ¦
-------------------------------------
¦ 5    ¦ candy           ¦ sweets   ¦
-------------------------------------

「フードボックス」をフルーツやスイーツでいっぱいにしたい。「フードボックス」にはすでに十分な量の果物が入っているため、お菓子のみを追加できます。

果物を追加できなくなった (果物 = 0) ため、お菓子 (チョコレートとキャンディー) だけをリストするにはどうすればよいですか?

これまでの私のクエリ:

SELECT type.food
FROM count, food 
WHERE type.food LIKE '%$query%' AND segment.food > '1'

(ユーザーが検索フィールドに目的のアイテムを入力すると、アイテムがリストされるはずです。そのため、LIKE を使用しました。)

どんな助けでも大歓迎です!

4

2 に答える 2

-1

参加したいときは条件があります。. 使用しているエイリアスが正しくfood.typeありませんtype.food

複数の値に一致させたいので、LIKEはあなたを助けません..おそらくfind_in_setがあなたが望むものです...

これを試して

SELECT f.type
FROM count c
join food f 
on c.segment = f.segment 
where  FIND_IN_SET(f.segment, 'sweets,fruit') and c.count >=1

フィドルを見る

それがあなたを助けることを願っています..

于 2013-04-08T07:36:50.740 に答える