我比较两个表并输出行中没有的值。
SELECT one, two FROM `table1` WHERE `two` NOT IN
(SELECT `two2` FROM `table2`) AND `one` NOT IN (SELECT `one1` FROM `table2`)
我怎样才能添加像'%two2'这样的行'%two'?
我想查一下:
SELECT one, two FROM table1 WHERE LIKE %two NOT IN (SELECT LIKE %two2 FROM table2)
因为在这个表中,第一个地方有时会出现0但是我必须淡出
我没有变量只有行名。我有什么方法可以做到吗?
答案 0 :(得分:2)
您可以反转您的情况并使用棘手的LEFT JOIN
代替。然后,您的查询将如下所示:
SELECT one, two FROM `table1`
LEFT JOIN `table2` ON
`table1`.`one` = `table2`.`one1`
OR `table1`.`two` = `table2`.`two2`
-- List others field comparasion using OR here --
WHERE `table2`.`one1` IS NULL;
这种方法可以帮助您减少子查询的数量,并大大提高性能和可读性。