我可以使用包含另一个select语句的列创建MYSQL select语句吗?

时间:2015-03-20 19:50:53

标签: mysql sql

我试图从旧的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中吗?如果是这样,用什么语法?

2 个答案:

答案 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