在 mysql 数据库表中,我有与域表具有一对多关系的项目,例如
项目
----------------
proId | domainId
----------------
1 1
1 2
2 1
3 3
域
---------------------
domainId | domainName
---------------------
1 Web
2 Mobile
3 iPhone
我查询
SELECT p.*, d.* FROM projects p LEFT JOIN domain d ON p.domainId = d.domainId
结果
结果
-----------------------------
proId | domainId | domainName
-----------------------------
1 1 Web
1 2 Mobile
2 1 Web
3 3 iPhone
但是是否可以将所有域显示为单个值并连接起来,例如
-----------------------------
proId | domainId | domainName
-----------------------------
1 1, 2 Web, Mobile
2 1 Web
3 3 iPhone
最佳答案
可能您正在寻找 GROUP_CONCAT
功能。
SELECT a.proID,
GROUP_CONCAT(b.domainID) domainId,
GROUP_CONCAT(b.domainName) domainName
FROM projects a
LEFT JOIN domain b
ON a.domainID = b.domainID
GROUP BY a.proID
SQLFiddle Demo
关于MySQL:将不同的值连接为单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12481555/