我有2张桌子。我想知道第一个表中的值是否存在于具有不同字段名称的另一个表中。
以下是它的外观,
表1 BillNo 43529179 43256787 35425676 25467778 24354758 45754748
表2 BNO 113104808 25426577 268579679 2542135464 252525232 235263663
我在table1中有137条记录需要针对table2进行检查。 而不是使用以下命令逐个执行,
从表2中选择*,其中BNo ='43529179';
这给出了上述值的结果。有没有办法检查单个查询中的所有值?
谢谢!
答案 0 :(得分:0)
您可以使用子选项进行比较:
Select * from Table2 where BNo IN (SELECT BillNo FROM Table1);
这将“evalaute”到像Select * from Table2 where BNo IN (113104808, 25426577, 268579679, 2542135464, 252525232, ...);
答案 1 :(得分:0)
加入表格,检查有多少匹配记录:
select
count(*) as Matches
from
Table1 as t1
inner join Table2 as t2 on t2.BNo = t1.BillNo
您还可以使用左连接来挑选表1中表2中没有匹配记录的记录:
select
t1.BillNo
from
Table1 as t1
left join Table2 as t2 on t2.BNo = t1.BillNo
where
t2.BNo is null