通过加入MySQL获取数据

时间:2013-06-24 09:09:27

标签: mysql join

我在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

我可以使用MySQL中的连接获得结果吗?

1 个答案:

答案 0 :(得分: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连接表不能使用索引。