1

为了简单起见,假设我有桌子usersinterests

用户

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 脚本或其他东西聚合我需要的值,但这感觉不优雅。

4

2 回答 2

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 ', ')

于 2013-04-21T21:22:22.210 回答
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 ...* )
于 2013-04-21T21:25:02.437 回答