2015-10-20 2 views
1

Структура моей таблицыВыбор данных из одной таблицы по двум полям

item_id (int) 
category_id (int) 

Вот некоторые примерные данные:

╔═════════╦═════════════╗ 
║ item_id ║ category_id ║ 
╠═════════╬═════════════╣ 
║ 2 ║  4  ║ 
║ 2 ║  5  ║ 
║ 3 ║  5  ║ 
║ 6 ║  9  ║ 
║ 1 ║  2  ║ 
║ 4 ║  5  ║ 
║ 6 ║  3  ║ 
║ 4 ║  4  ║ 
╚═════════╩═════════════╝ 

Я не могу выбрать одну строку с помощью множественного выбора на втором поле.

НАПРИМЕР, мне нужно выбрать все строки, которые включают в себя CATEGORY_ID = 4 и 5

+0

Проблема утверждение несколько неясно, в Меньше всего для меня. Не могли бы вы поделиться результатами, которые вы пытаетесь получить для данных данных образца? – Mureinik

+0

@Mureinik необходимо вернуть item_id = 2 и item_id = 4. – Salavat

+1

Вы должны привести примеры SQL-запросов, которые вы пробовали, чтобы лучше понять, почему вы не можете достичь своей цели. – Erik

ответ

1

я думаю вам нужно что-то вроде:

http://sqlfiddle.com/#!9/019c4/2

SELECT item_id 
FROM items 
WHERE category_id IN (4, 5) 
GROUP BY item_id 
HAVING COUNT(DISTINCT category_id)=2 
+0

Похоже, любит работу! Спасибо, Алекс! – Salavat

+0

Добро пожаловать :-) удачи в вашем проекте! – Alex

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