2013-08-12 6 views
0

У меня есть эти две таблицы:Выберите все идентификаторы, которые имеют это значение в MySQL

Таблица 1:

ID   ITEM 
-------------------- 
1    AB 
1   22S 
1    AB 
2   F45 
2    BB 
3    1 
3    1 
3    AA 
3   F45 
3   F67 
3    A 
...... 

Таблица 2:

ITEM COUNTRY 
--------------- 
0  usa 
1  italy 
2  mexico 
3  mexico 
A  greece 
AA  malta 
AB  usa 
AC pakistan 
B  uk 
BB france 
BA france 
BB russia 
F45  uk 

И я использую следующий запрос, чтобы получить Элементы, которые соответствуют «А%» для каждого ID:

SELECT GROUP_CONCAT(ITEM) 
FROM (SELECT Table1.ID, Table1.ITEM, Table1.date 
     FROM Table2 Table2 INNER JOIN Table1 Table1 
     ON (Table2.ITEM = Table1.ITEM) WHERE table2.ITEM like "A%" 
     ORDER BY Table1.id, Table1.date, Table2.ITEM) as temp 
GROUP BY ID 
ORDER BY ID 

Я хочу найти способ редактирования моего запроса, чтобы я мог получить выше только те идентификаторы, которые имеют в них элемент «F45» (но я не хочу использовать этот элемент, просто выберите идентификаторы, которые его имеют) .. Любая помощь будет оценена

+0

выберите идентификатор из таблицы 1, где элемент типа «% F45%»; ? – Jakob

ответ

1

Я думаю

SELECT GROUP_CONCAT(ITEM) AS group_item 
FROM (SELECT Table1.ID, Table1.ITEM, Table1.date 
     FROM Table2 Table2 INNER JOIN Table1 Table1 
     ON (Table2.ITEM = Table1.ITEM) WHERE table2.ITEM like "A%" 
     ORDER BY Table1.id, Table1.date, Table2.ITEM) as temp 
GROUP BY ID 
HAVING group_item LIKE '%F45%' 
ORDER BY ID 

Или настроить подзапрос, чтобы выбрать только нужные строки (здесь я не уверен, что вы пытаетесь достичь)

+0

это работает..отсутствует! – user2578185