在SQL语句中查找不匹配项

时间:2014-10-31 20:05:25

标签: mysql sql

我有一个如下所示的查询:

SELECT u_s_date, u_s_customer, u_s_product_name, u_f_quantity FROM updated
JOIN accounts ON `name` = u_s_customer
WHERE deleted = 0; 

比较400个产品订单中名为updated的表中的列表。我正在加入accounts表,因为updated表中的所有客户名称都不在accounts表中。因此,列表从400到300个名称。

我现在需要的是另外列出100行

我尝试了JOIN accounts ON `name` <> u_s_customer这样的事情,但显然没有用。我对子查询和条件不满意,我担心这是唯一的方法。

有人可以给我一些帮助吗?

1 个答案:

答案 0 :(得分:3)

EXISTS OPERATOR

SELECT *
FROM updated u
WHERE NOT EXISTS (SELECT 1
                  FROM accounts 
                  WHERE `name` = u_s_customer)

LEFT JOIN

SELECT *
FROM updated LEFT JOIN accounts 
ON `name` = u_s_customer
WHERE name IS NULL

不在

SELECT *
FROM updated 
WHERE name NOT IN (SELECT u_s_customer
                   FROM accounts )