2013-04-08 4 views
0

У меня есть таблицы, и я хотел бы присоединиться к ним с SQL-Query. Это может быть самая легкая вещь в мире, но ... хорошо.Присоединиться к двум таблицам с условием

Таблица "Количество":

----------------------------- 
¦ 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 Поэтому я использовал LIKE)

Любая помощь очень ценится!

+0

Какой у вас запрос $ ..? – alwaysLearn

+0

Запрос происходит из поля ввода типа bootstrap. Работает как шарм. – user2256380

ответ

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

Ты рокстар, дродил! Благодаря! – user2256380

-1

Если вы хотите сделать соединение, то должно быть условие. , и псевдоним вы используете не исправить это должно быть food.type и не type.food

, так как вы хотите, чтобы соответствовать для нескольких VALES LIKE не вам .. ГПУ вероятная find_in_set является то, что вы хотите ...

Try это

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

+0

@ user2256380 см. Http://sqlfiddle.com/#!2/25d4b/1 – alwaysLearn

+0

Большое спасибо. Я не могу голосовать, так что это не я. Также спасибо за то, что выбрали лишнюю милю и создали sqlfiddle! Просто начинайте здесь, потрясающее сообщество и быструю помощь! – user2256380

Смежные вопросы