我有2个表我想找到不匹配的结果:
table1
REF CARD AMOUNT
12345 55432 1000
23456 55321 2000
34567 55789 3000
table2
MSG AMT ID
12345_T1R3-55432 1000 456
23456-R1M5-55321 2000 567
34567*O1L@-13123 5000 783
我的查询:
SELECT
'table1'.'REFF',
'table2'.'MSG',
'table1'.'card',
'table1'.`amount`,
'table2'.'amt'
FROM
'table1',
'table2'
WHERE
'table2'.'MSG' LIKE CONCAT('%', 'table1'.'REFF', '%') AND 'table2'.'MSG' LIKE CONCAT('%', 'table1'.'card', '%')
QUERY RESULT
table1.reff table2.msg table1.card table1.amount table2.amt
12345 12345_T1R3-55432 55432 1000 1000
23456 23456-R1M5-55321 55321 2000 2000
我想从这个结果得到另一个结果(反向),如:
table1.reff table2.msg table1.card table1.amount table2.amt
34567 34567*O1L@-13123 55789 3000 5000
谢谢
答案 0 :(得分:0)
P And Q
的反面是not P or not Q
。因此,将此应用于您的查询会产生:
SELECT
t1.REFF,
t1.MSG,
t1.card,
t1.amount,
t2.amt,
FROM table1 t1
LEFT JOIN table2 t2
ON t2.MSG LIKE CONCAT('%', t1.REFF, '%') AND
t2.MSG LIKE CONCAT('%', t1.card, '%')
WHERE
t2.MSG IS NULL;
顺便说一句,你使用单引号是完全错误的。你发布的查询可能甚至都没有运行,所以我猜你也许你错误地复制了它。