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 回答
-1
SELECT food.type FROM count, food WHERE food.segment = count.segment AND food.type LIKE '%$query%' AND count.count > 0
于 2013-04-08T07:38:20.103 回答