为简单起见,假设我有表users
和interests
id | name
---------
1 | amy
2 | brian
3 | carole
uid | interest
--------------
1 | apples
3 | catfish
3 | cobwebs
3 | cryogenics
我想要回来的是看起来像
的输出name | interests
----------------
amy | apples
brian |
carole| catfish, cobwebs, cryogenics
其中,兴趣可以是由所有相关值与某些分隔符或离散值向量的串联组成的字符串。我有兴趣将它转储到一个文件中,而不是把它放在一个表中或用它做任何其他SQL的东西。做
SELECT name, (SELECT interest from interests where uid=id) as interests from users;
给我标题中提到的错误。这在SQL范例中是不可能的吗?我知道我可以将这些表的连接转储到一个文件中,然后使用python脚本或其他东西聚合我需要的值,但这感觉不够优雅。
答案 0 :(得分:3)
试试这个
SELECT name , group_concat(interest) as interests from interests
LEFT JOIN users on users.id = interests.uid
GROUP BY name
更新
如果你想要空格,请执行group_concat(interest SEPARATOR ', ')
答案 1 :(得分:0)
SELECT u.name, i.interest
FROM users AS u, interests AS i
WHERE u.uid = i.id
尝试加入,这可能有效。
由于select和from语句的排序,您可能会收到错误,或者您需要在名称后面加一个逗号。像:
SELECT name, ( *then your select statement here ...* )