0

私はSQLの初心者です。私は 3 つのテーブルを持っていmr1,mr2,mr3ます。Caseidこれらすべてのテーブルの主キーです。これらすべてのテーブル列を結合して結果を表示する必要があります。問題は、どの結合を使用するかわからないことです。以下のクエリのようにこれらすべてに参加したとき:

select mr1.col1,mr1.col2,mr2.col1,mr2.col2,mr3.col1,mr3.col2
from mr1,mr2,mr3
where mr1.caseid = mr2.caseid
and mr2.caseid = mr3.caseid;

レコードの最大数は table にある 2 ですが、4 つのレコードが表示されますmr2。レコードが重複しています。この点について誰か助けてもらえますか?

4

2 に答える 2

0

Distinct はそれを行いますが、それは正しいアプローチではありません。mr2 と mr3 の行は mr1 の同じ行に関連付ける必要があるため、別の結合 (mr1.caseid = mr3.caseid) を追加する必要があります。そうしないと、プライマリ テーブル (mr2) に結合されたテーブルごとに 2 つのペアが作成されます。 . SOでの最初の回答なので、明確でない場合はご容赦ください。

于 2013-07-08T17:58:44.990 に答える