1

ここに私の問題があります。

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

表1 -

id | Name | Code
1  | test | 4
2  | test | 5
3  | test4| 6
4  | test4| 7
5  | test | 8
6  | test | 9

表2 -

id | Code
1  | 4
2  | 5
3  | 6
4  | 7
5  | 8
6  | 9

ここでコード列は両方のテーブルで同じですが、私がしようとしているのは、Table2 からのコードを持っていて、それを使用して他のテーブルを選択していることです。例えば

SELECT * FROM Table2 LEFT JOIN Table1.Code = Table2.Code WHERE Table2.Code = 4、それで問題ありません。同じ Code の両方のテーブルから結果を取得していますが、Table1 がある時点から、同じNameのすべての行を取得したいと考えています。私が望む期待される結果は

id | Name | Code
1  | test | 4
2  | test | 5
5  | test | 8
6  | test | 9
4

1 に答える 1

2

次のようなものを試すことができます

SELECT  *
FROm    Table1 t1
WHERE   Name IN (
                    SELECT  t1.Name
                    FROM    Table1 t1 INNER JOIN
                            (
                                SELECT  id,
                                        Code
                                FROM    Table2 
                                WHERE   Table2.Code = 4
                            ) t2    ON  t1.id = t2.id
                                    AND t1.Code = t2.Code
                )

あるいは

SELECT  *
FROm    Table1 t1
WHERE   Name IN (
                    SELECT  t1.Name
                    FROM    Table2 t2 INNER JOIN
                            Table1 t1   ON  t2.id = t1.id
                                        AND t2.Code = t1.Code
                    WHERE   Table2.Code = 4
                )
于 2012-08-30T08:15:24.420 に答える