2012-01-25 9 views
0

私はMysqlでクエリを取得しました。one-one、many-one、many-manyの関係に基づいて2つのテーブルから数えます

私はmysqlに2つのテーブルT1とT2を持っています。以下に示すように

の両方が値と共通のID列が含まれている -

T1 - 1, 2, 3, 3, 4, 4, 5 

T2 - 1, 2, 3, 4, 4, 5 

私は次のように私に出力を与えるために、テーブルT1を照会しようとしています -

1, 2, 3, 4, 4, 5 

値1,2,5のようにT1とT2の間に1対1の関係が存在する場合、T1から選択されます。 T2に1つの値を持つT1の値3のように、T1とT2の間に多数の関係がある場合、T1から1つの値のみが選択されます。 T1とT2の値4のようなmany-manyがT1からそのまま選択されます。

+0

申し訳ありませんが、最初の質問を誤読しました。 「T1」に「6」が含まれ、「T2」に「6」、「6」が含まれる1対多の関係はどうでしょうか? –

+0

心配はありません:-) 1対多の関係では、唯一の値6がT1から選択されています。ランダムはそれを下にクラックされているようだ。 –

+0

あなたはあなたの質問の一部としてそれを言いたいかもしれません。また、@ランダムの答えは、そのケースでは動作しません。 –

答えて

0
SELECT T3.ID FROM (SELECT DISTINCT ID FROM T1) T3 
INNER JOIN T2 ON T3.ID = T2.ID 

T1からの結果を別のセットにまとめてから、T2で見つかった一致に基づいて再膨張させます。

+0

Brilliant!ありがとう。完璧に動作します。とても有難い。 –

関連する問題