2012-02-27 15 views
3

現在、私は約10のテーブルを持つデータベースを持っています。私は、内部結合を使用してそれらをすべて一緒に結合し、結果を表示しました。SQLヘルプ〜リレーショナルデータベースモデル〜結果の表示

ただし、1つの列に複数の値が含まれる可能性があります。

例えば、私のデータベースは、これがそれにロードされました:私はITEM2のために一緒に「ID」の3つのインスタンスを連結したい

SELECT Main.item, thing.id FROM Main INNER JOIN thing ON Main.MainID = thing.id 

item id 
item1 | 1 
item2 | 1 
item2 | 2 
item2 | 3 

私はこのようにそれを参加しました私の結果ページに「item2」を3回表示せずに。

"item1" "1" 
"item2" "1 & 2 & 3" 

私は私の問題は、SQLの私の不適切な使用されているかなり確信しているが、私はまた、表示するためにJavascriptを、PHP、& HTMLを使用しています:間の区切り文字の結果は次のようになり&」、「IDがあるかもしれません」結果は問題がどこにあるかもしれないと思ったら私に知らせてください。

おかげであなたの項目によって

+0

それは私がMS SQL(私はあなたが最も解決策を見つけるだろうどのように考えるかである非標準)でのいくつかのソリューションを見てきました少し明らか – dee

+0

になるように、あなたはあなたのいくつかのコードを追加してくださいすることができますだから、データベースの種類(MS SQLのMySQL、PostgreSQL、Oracleなど)について言及することが役立つと思います。それ以外の場合は、グリッドに出力する前にPHPで行を処理するだけです(グリッドと仮定しています)。 – JayC

答えて

2

だけのグループとあなたのIDの集合体としてGROUP_CONCATを使用する:あなたはグループ(GROUP BY)を作成することができますMySQLを使用している場合

SELECT items.item, GROUP_CONCAT(ids.id SEPARATOR ' & ') 
FROM items 
JOIN ids ON items.id=ids.id 
GROUP BY items.item 

MySQL GROUP_CONCAT function for more information.

+0

ありがとうございました!私はこの機能が存在するかどうか分かりませんでした。 –

0

を参照してくださいGROUP_CONCAT MySQL関数を使用することができます。

MSSQL "GROUP_CONCAT"