0

2 つのテーブルを結合したいのですが、INNER JOIN は使用せず、ネストされたクエリを使用します。

私は2つのテーブルを持っています:

  • TableA : AField1、AField2、AField3、AField4
  • TableB : BField1、BField2、BField3

テーブル間のリンクは AField1 と BField1 です。

SELECT AField1, AField2, AField3
 FROM TableA
 WHERE AField1 IN (
    SELECT BField1 FROM TableB
    WHERE BField3 like 'E11%'
    );

結果にAField1、AField2、AField3、AField4、およびBField2、BField3が欲しい

何か案が ?

ありがとう

4

1 に答える 1

0

これがあなたが達成しようとしているものだと思います-明らかに、このソリューションは結合の整合性に左右されます。そのため、PK が一致していることを確認して、不適切な結合を取得していないことを確認する必要があります。

SELECT a.AField1,
  a.AField2,
  a.AField3,
  bb.BField2,
  bb.BField3
FROM TableA a
WHERE EXISTS
  (SELECT 'X'
  FROM TableB b
  WHERE b.BField3 LIKE 'E11%'
  AND a.AField1 = b.BField1
  )
  (SELECT * FROM TableB WHERE BField3 LIKE 'E11%'
  ) bb
AND a.AField1 = bb.BField1

SQL では、テーブルにエイリアスを設定できます。詳細については、こちらを参照してください: SQL テーブル エイリアスを使用する場合

于 2013-09-25T06:09:33.833 に答える