2009-04-10 4 views
1

"プレーンSQLの質問" :)私は2つのテーブルと、 "半接合テーブル"として動作する3つのテーブルを持っています。彼らに参加する方法はありますか?例えばnull接続可能なフィールドを持つ接合テーブルを介して結合する

、以下のデータを与えられた:

表DのIDの:1,2,3,4,5
表CのIDの:1,2,3
表ジャンクション(D.id、Cを.id):(1,1)(2、NULL)(3、NULL)(4,2)(5,3)

次の情報を取得する手段はありますか?
([行ID 2のDフィールド]、[NULL Cフィールド])
([行ID3のD個のフィールド] 、[NULL Cフィールド])
(行ID4のDフィールド、行ID2のCフィールド)
([行ID5のDフィールド]、[行ID3のCフィールド])

関連性がある場合、私はPostgreSQLを使用しています。
お時間をありがとうございます!

+0

クールなロゴに非常に役立ちます、この記事をチェックアウトする必要があります。私はテーブルデザインについて心配しています。具体的には、ジャンクションテーブルにエントリが1つの値に対してヌルで表示されることはどういう意味ですか? –

+0

"半接合テーブル"は実際には外部結合ベースの選択の結果です:)実際のテーブルはD - > "Customers"とC - > "Sent documents"です。私はすべての顧客を示すレポートを生成する必要があります最終的に彼の最後に送られた文書(すべての顧客が文書を持っているわけではありません)。少し複雑です:) – Joril

+0

@浄瑠璃:大丈夫、十分です。本当の質問をすることで、より良い答えを得ることがよくあります。 –

答えて

3
SELECT d.*, c.* 
FROM d 
JOIN junction j 
ON  j.d_id = d.id 
LEFT JOIN 
     с 
ON  c.id = j.c_id 
+0

皆に感謝します:) – Joril

関連する問題