题
我需要运行等的查询:
SELECT p.id, p.name,
(SELECT name
FROM sites s
WHERE s.id = p.site_id) AS site_list
FROM publications p
但是,我想在子选择返回,而不是一列数据的逗号分隔的列表,。这甚至可能,如果是这样,怎么样?
解决方案
SELECT p.id, p.name, GROUP_CONCAT(s.name) AS site_list
FROM sites s
INNER JOIN publications p ON(s.id = p.site_id)
GROUP BY p.id, p.name;
其他提示
而不是使用group concat()
,你可以只使用concat()
Select concat(Col1, ',', Col2) as Foo_Bar from Table1;
编辑这仅适用于mySQL的;甲骨文CONCAT只接受两个参数。在Oracle中,你可以使用类似选择COL1 || ' '|| COL2 ||',' || COL3从表1 foobar的; 在SQL Server你会使用+代替管道。
在我的情况,我必须连接一人谁的手机号码是唯一的所有帐号。因此,我已经使用以下查询来实现这一点。
SELECT GROUP_CONCAT(AccountsNo) as Accounts FROM `tblaccounts` GROUP BY MobileNumber
查询结果如下:
Accounts
93348001,97530801,93348001,97530801
89663501
62630701
6227895144840002
60070021
60070020
60070019
60070018
60070017
60070016
60070015
不隶属于 StackOverflow