0

我在 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 中使用 join 获得这样的结果吗?

4

1 回答 1

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

在此处查看小提琴。性能会很慢,因为使用 FIND_IN_SET 连接表不能使用索引。

于 2013-06-24T09:13:07.473 回答