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 に答える