したがって、1つのテーブルから別の値を選択する必要がありますが、同じクエリ内の別のテーブルの関連値をすべて結合する必要があります。mysqlはconcatを持つテーブルから別のテーブルの結果を選択します
基本的に私はToxi TagSystemスキーマを次http://forge.mysql.com/wiki/TagSchema#Toxi
三つのテーブルの多対多マッピングの間です。
すべての挿入された値(ドキュメント)を各行に1つずつ表示する必要がありますが、そのファイルのすべてのタグをカンマで区切っている列の1つを表示したいとします。今の
私は
SELECT
docs.id AS id,
docs.orig_file AS orig_file,
docs.date_sent AS date_sent,
tags.tag_name AS alltags
FROM documat AS docs
LEFT JOIN documat_file2tag AS f2t ON f2t.doc_id = docs.id
LEFT JOIN documat_tags AS tags ON tags.id = f2t.tag_id
を持っている。しかし、特定のdocs.idがタグよりも多くを持っている場合は、この行を繰り返しています。私はそれぞれの行にしたいと思い、最終的な結果は次のとおりです。
| ID | orig_file | date_sent | alltags |
望ましい結果の例では:
| X | example_value.pdf | 2012-03-23 10:14:05 | tag_ex_1, tag_ex_2, etc |
あなたが副選択とGROUP_CONCATを使用することはできますか?私が右にsubselectする必要がある3つのテーブルがあるので、http://stackoverflow.com/questions/276927/can-i-concatenate-multiple-mysql-rows-into-one-field – ovolko
@ovolkoを参照してください。どうやって? SQLは本当に私の弱点です:P – eduardev
okはsubselectが必要でもないようです:) – ovolko