この方法でデータを保持することはお勧めできません。
最初に頭に浮かぶのは、 http://sqlfiddle.com/#!2/です。 1dd77 / 4
SELECT b.*, GROUP_CONCAT(a.name SEPARATOR ':')
FROM table2 as b
LEFT JOIN table1 as a
on b.var = a.id
OR b.var regexp(CONCAT('^',a.id,':'))
OR b.var regexp(CONCAT(':',a.id,':'))
OR b.var regexp(CONCAT(':',a.id,'$'))
GROUP BY b.id
編集1
注文したバリアント: http://sqlfiddle.com/#!2/1dd77/38 >
SELECT b.*, GROUP_CONCAT(a.name ORDER BY FIND_IN_SET(a.id, REPLACE(b.var,":",",")) SEPARATOR ':' )
FROM table2 as b
LEFT JOIN table1 as a
on b.var = a.id
OR b.var regexp(CONCAT('^',a.id,':'))
OR b.var regexp(CONCAT(':',a.id,':'))
OR b.var regexp(CONCAT(':',a.id,'$'))
GROUP BY b.id