我试图从旧的Drupal网站导出一些数据。我希望我能得到像这样的MYSQL查询:
SELECT users.uid, name, pass, mail, created, (SELECT rid FROM users_roles WHERE users_roles.uid = users.uid) AS all_rids
FROM users
所以输出行可能是这样的:
"1000", "Frank Smith", "123456", "frank@example.com", "12/15/2012", "3,7,12"
关键是最后一列是一个由select语句
中的值组成的数组...对不起,我忘记了这类查询的正确术语,但我很确定在SQL Server中可以做到这样的事情。
这可能在MYSQL中吗?如果是这样,用什么语法?
答案 0 :(得分:0)
可能有多个匹配项。我想你想在子查询中使用group_concat()
:
SELECT users.uid, name, pass, mail, created,
(SELECT group_concat(rid)
FROM users_roles
WHERE users_roles.uid = users.uid
) AS all_rids
FROM users;
答案 1 :(得分:0)
为什么你不要简单地使用LEFT JOIN?
SELECT users.uid, users.name,
users.pass, users.mail, users.created,
users_roles.rid
FROM users
LEFT JOIN users_roles ON users.uid=users_roles.uid