我需要从一个表中返回所有值,其中金额与另一个表中的行匹配,并且这些行具有类似的描述。一些例子。
table1
包含(请注意,description
字段包含格式错误的文字):
amount | description
------------------------------------------------
899,95 | 37.43.22.174 COMPANY HOLDING AMSTERDAM Regarding: speedtransaction ORDERNUMBER: 0012345
3793,93 | Apple Lt. STREET 5 1234 AV AMSTERDAM 134567
3793,93 | Totally diff COMP lt. STREET 8 6542 AC HAARLEM 134567
table2
包含:
amount | description
------------------------------------------------
899,95 | COMPANY HOLDING SEPA Ove
3793,93 | Apple Lt.
对于2个表中的多行,金额可以相同,因此我需要与另一个值进行比较,作为描述中的一些关键字。我该如何匹配这些描述?
试过这个,但是效果并不好,因为我觉得我还在选择其他表中金额的位置:
SELECT `table1`.* FROM `table1`
WHERE `table1`.`amount` NOT IN
(SELECT `amount`
FROM `table2`
WHERE `table2`.`amount` = `table1`.`amount`
AND `table1`.`description` LIKE CONCAT('%', SUBSTR(`table2`.`description`, 1, 15), '%')
)