从表A中获取与表B上的数据相关的记录

时间:2019-10-30 18:37:57

标签: sql oracle11g

我正在尝试从tableA中获取所有票证,其中tableB.tid与tableB.category相关。请注意,表A中的最后2条记录不符合上述条件。

tableA
tickets  tid   category 
124560   123   xx 
116550   125   xx
124777   244   yy
225560   223   yy
258965   244   xx
445878   123   yy
tableB
tid   category  des
123   xx        description_xx_123
223   yy        description_yy_223
125   xx        description_xx_125
244   yy        description_yy_223

预期结果是

tableA
tickets
124560 
116550 
124777
225560

3 个答案:

答案 0 :(得分:2)

进行内部联接时,它只会在两个表中返回结果。

select a.tickets
from tablea a
join tableb b on a.tid = b.tid and a.category = b.category

答案 1 :(得分:1)

为此使用联接

SELECT tableA.tickets FROM tableA
JOIN tableB  
ON tableA.tid = tableB.tid 
AND tableA.category = tableB.category

也可以使用where子句

SELECT tableA.tickets FROM tableA, tableB  
WHERE tableA.tid = tableB.tid 
AND tableA.category = tableB.category

答案 2 :(得分:1)

我推荐exists

select a.*
from tabla a
where exists (select 1
              from tableb b
              where a.tid = b.tid and a.category = b.category
             );

这将忽略tableb中的重复项。