私は3つのテーブルを持っています。t1、t2、t3。t2、t3 の間で共通の値を取得し、t1 からレコード全体を選択したいと考えています。次のようにステートメントを入力すると:
select * from db.t1 where col1
IN (
select col1 from t2 , t3
where t2.col1=t3.col1);
構文エラーが発生します。なにが問題ですか ?
私は3つのテーブルを持っています。t1、t2、t3。t2、t3 の間で共通の値を取得し、t1 からレコード全体を選択したいと考えています。次のようにステートメントを入力すると:
select * from db.t1 where col1
IN (
select col1 from t2 , t3
where t2.col1=t3.col1);
構文エラーが発生します。なにが問題ですか ?
よくわかりませんが、カプセル化された col1 の名前を変更する必要があるかもしれません:
select * from db.t1 where t1.col1
IN (
select col1 as col1bis from t2 , t3
where t2.col1 = t3.col1);
これ:
where col1.t2=col1.t3);
次のようにする必要があります。
where t2.col1=t3.col1);
t2.col1=t3.col1 (示されているように、col1.t2=col1.t3 ではなく) をテストしていると仮定すると、もう 1 つの問題は、内側の SELECT での col1 のあいまいさです。