如何在没有1:1关系的情况下从两个关系表中获取数据? - MySQL

时间:2012-08-04 16:47:04

标签: mysql optimization inner-join

我有两个关系表,coredomains。它们都与core.iddomains.cid相关联。我想形成一个查询,该查询可以返回core表中的一行,以及domains表中的所有相关行。目前,我运行了两个查询;一个从core表中获取所需的单行,另一个从domains表中获取所有相关行,但我正在尝试优化我的查询。

我尝试过类似的事情:

SELECT a.domain,b.* FROM domains a WHERE a.cid=1 INNER JOIN core b ON a.cid=b.id

现在这个工作正常,除了它返回所有冗余数据的多行。例如,如果core中的一行在domains中有5个相关行,则返回5行,b.*在每个结果中显然相同。有没有办法返回一行,单行返回所有a.domain

1 个答案:

答案 0 :(得分:2)

SELECT
  GROUP_CONCAT(d.domain) AS domains,
  c.*
FROM core c
JOIN domains d
  ON d.cid = c.id
WHERE c.id = 1
GROUP BY c.id