2013-06-24 36 views
0

我的表在MySQL波纹管:获取的数据与加入MySQL的

表项目:

id item_name contact_id 
1 Cocacola 1;3 
2 Clothes 2;3 

表接触

id name  tel 
1 Dona  xxx-xxx-xxxxx 
2 Maro  xxx-zzz-zzzzz 
3 Sana  yyy-mmm-mmmmm 

结果,请先加入后:

id item_name  contact_tel 
1 Cocacola  xxx-xxx-xxxxx, yyy-mmm-mmmmm 
2 Clothes  xxx-zzz-zzzzz, yyy-mmm-mmmmm 

我可以得到像那样使用jo在MySQL中?

回答

3
SELECT 
    item.id, 
    item.item_name, 
    GROUP_CONCAT(tel) contact_tel 
FROM 
    item LEFT JOIN contact 
    ON FIND_IN_SET(contact.id, REPLACE(item.contact_id, ';', ',')) 
GROUP BY 
    item.id, 
    item.item_name 

请参阅小提琴here。性能会很慢,因为使用FIND_IN_SET连接表不能使用索引。

+0

谢谢fthiella。你的答案非常有用 –