mysql - 在 SQL 语句中查找不匹配项

标签 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; 

在名为 updated 的表中比较列表400 个产品订单。我正在加入 accounts 的表因为并非所有客户名称都来自 updated表在 accounts table 。因此,列表中的名称从 400 个增加到大约 300 个。

我现在需要的是制作另一个包含的 100 行的列表。

我试过类似 JOIN accounts ON `name` <> u_s_customer 的东西这显然是行不通的。我不擅长子查询和条件,恐怕这是唯一的方法。

有人可以帮我解决这个问题吗?

最佳答案

存在运算符

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

左连接

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 )

关于mysql - 在 SQL 语句中查找不匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26682614/

相关文章:

映射表的 SQL 查询直接转换为 JSON

sql - 像 Farmville 这样的在线游戏使用什么数据库?

java - 如何解决 Uncompilable source code - Erroneous sym type : java. sql.Statement.executeUpdate in Netbeans

java - Windows 10 上的错误 : Unable to access jarfile metabase. jar

mysql - 如何以 5 秒为间隔选择和分组日期?

mysql - 验证在 login.cs 页面中不起作用

mysql - 在 MySQL 中创建具有更改日期的数据透视表

php - MySQL周(): Get all weeks in date range (with/without records)

php - 获取同一行中两列的值

php - 在 PHP 中调用带有 OUT 参数的存储过程