我想知道检查表的一个字段中的所有值是否存在于另一个字段名称下的另一个表中的命令

时间:2015-02-04 19:44:07

标签: mysql sql-server

我有2张桌子。我想知道第一个表中的值是否存在于具有不同字段名称的另一个表中。

以下是它的外观,

表1 BillNo 43529179 43256787 35425676 25467778 24354758 45754748

表2 BNO 113104808 25426577 268579679 2542135464 252525232 235263663

我在table1中有137条记录需要针对table2进行检查。 而不是使用以下命令逐个执行,

从表2中选择*,其中BNo ='43529179';

这给出了上述值的结果。有没有办法检查单个查询中的所有值?

谢谢!

2 个答案:

答案 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