小编典典

在一个选择中联接两个表

sql

我有两个表:

TABLE 1
ID   VALUE   
1    ABC
2    DEF
3    GHI
4    JKL
5    XYZ

TABLE 2
ID  T1_ID  VALUE 
1   1      A
2   1      B
3   2      A
4   3      A
5   3      B
6   4      B

我想从表1中选择所有具有值A和B的表2行的行。这将是行1和3(不是2行,因为它只有A,没有4行是因为只有B)。我可以在没有子查询的情况下执行此操作吗?

(注意:我还需要查询表1中的值,因此我不能只查询表2。)


阅读 124

收藏
2021-04-14

共1个答案

小编典典

塔达阿!没有子查询。

select distinct
  t1.*
from
  Table1 t1
  inner join Table2 t2a on t2a.t1_ID = t1.ID and t2a.VALUE = 'A'
  inner join Table2 t2b on t2b.t1_ID = t1.ID and t2b.VALUE = 'B'
2021-04-14