1

这是我的问题。

我有两张桌子,

表格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,没关系,现在我从两个表中获取相同代码的结果,但是现在,当我拥有 Table1 时,我想获取 All the rows With the same 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 回答