我在同一个数据库中有两个我需要比较的MySQL表。一个是masterTxn
,它基本上是我需要与另一个表month_tbl
进行比较的主事务列表。
我的目标是将masterTxn
与month_tbl
进行比较,并在masterTxn
中找到month_tbl
但不的交易。我已尝试过以下操作,但它返回0行,当我知道肯定至少有300-400行应与此查询匹配时:
SELECT * FROM masterTxn WHERE masterTxn.TxnID NOT IN (SELECT month_tbl.TXNID FROM month_tbl)
如您所见,我尝试使用每个表中的TXNID
列进行比较。但是,这里有一个问题:有多个行具有相同的TXNID
值。换句话说,这些表中没有主键或标识符 - 尽管我希望我可以改变它,这就是数据从其来源写入的方式。
我从其他帖子中尝试了几件事:
MySQL "NOT IN" query
Get a result by comparing two tables with an identical column
但是这些想法并没有奏效......也许我实施它们是错误的,但似乎这些其他帖子中的每一个都有一个列,其中没有其他行具有相同的值。< / p>
有什么想法吗?
提前致谢!!
答案 0 :(得分:1)
试试这个:
SELECT a.*
FROM masterTxn a
LEFT JOIN month_tbl b ON b.TXNID = a.TXNID
WHERE b.TXNID IS NULL