2017-02-21 16 views
0

Мне нужна помощь по следующему запросу.
У меня есть таблица ниже, и я пытаюсь сделать JOIN, но это не работает, как ожидалось:
MySQL оставил несколько идентификаторов

TABLE1 
Id1 | Title 
1 | A 
2 | B 
3 | C 

TABLE2 
Id2 | Id1 
10 | 1 
20 | 1 
30 | 1,2 

Так в основном столбец Id1 на table2 может занять более 1 значение. я начал со следующим SQL, но он не работает, как ожидалось:

select t1.id1,count(1) 
from table1 t1 
left join table2 
on t1.id1 = t2.id2 
group by t1.id1 desc; 

Я также попытался заменить t1.id1 = t2.id2 с: - t1.id1 в t2.id2 - t1 .id1 like concat ("%", t2.id2, "%")

, но он по-прежнему не работает должным образом. Этот запрос должен возвращать все идентификаторы в таблице 1 и должен считать все экземпляры Id1 в таблице2.

Любые мысли/предложения?

+0

* в основном столбец Id1 на table2 может занять более 1 значение * это существенные недостатки – Strawberry

ответ

0

следующий SQL возвращает данные, что мне нужно:

select t1.id1,count(t2.id1) 
    from table1 t1 
    left join table2 t2 
    on find_in_set(t1.id1,t2.id1) 
    group by t1.id1 desc;