2013-04-08 112 views
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 ¦ 
------------------------------------- 

我想補 「foodbox」 水果和糖果。因爲已經有足夠的水果,所以只有甜食仍然可以添加到「食品盒」中。

我怎樣才能列出糖果(巧克力和糖果),因爲水果不能再添加(水果= 0)?

我到目前爲止查詢:

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

(該項目應在searchfield中所需的項目類型的用戶後上市,所以我用等)

任何幫助,非常感謝!

+0

什麼是您的$查詢..? – alwaysLearn 2013-04-08 07:52:30

+0

查詢來自引導程序typeahead輸入字段。奇蹟般有效。 – user2256380 2013-04-08 08:44:33

回答

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

你是rockstar,drodil!謝謝! – user2256380 2013-04-08 08:37:44

-1

當你想要參加時,應該有一個條件。 。並且您使用的是不正確的它的別名應該是food.type而不是type.food

,因爲要匹配的多VALES LIKE不會HEP你..可能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 

看到fiddle

希望它可以幫助你..

+0

哦真的!爲什麼downvote ..? – alwaysLearn 2013-04-08 07:42:34

+0

@ user2256380請參閱http://sqlfiddle.com/#!2/25d4b/1 – alwaysLearn 2013-04-08 08:26:01

+0

非常感謝。我不能投票,所以它不是我。同時感謝您加倍努力並設置sqlfiddle!剛從這裏開始,真棒社區和快速幫助! – user2256380 2013-04-08 08:42:21