获取表中不可用的数据

nwwlzxa7  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(277)
================= Customer Table =============

# customer

Code    Description 
301     Customer 1
302     Customer 2
386     Customer 3
387     Customer 4
390     Customer 5
391     Customer 6
392     Customer 7

我正在使用下面的查询

select * from customer
where code not in (310, 350, 301, 302);

它将从上面的查询中获取以下数据

Code    Description 
386     Customer 3
387     Customer 4
390     Customer 5
391     Customer 6
392     Customer 7

但实际上我想得到

310 
350

意味着哪些数据是不可用的,而我们将其放在何处。
我不想创建另一个表来实现这一点。
请分享一些想法。

xdnvmnnf

xdnvmnnf1#

您可以尝试以下查询:

SELECT * FROM
(SELECT 310 AS code UNION SELECT 350 UNION SELECT 301 UNION SELECT 302) AS t1
WHERE NOT EXISTS(SELECT 1 FROM customer
             WHERE code = t1.code)

演示

eagi6jfj

eagi6jfj2#

使用子查询创建具有这些值的派生表,然后将其左键联接到实表。

SELECT t1.code
FROM (SELECT 310 AS code UNION SELECT 350 UNION SELECT 301 UNION SELECT 302) AS t1
LEFT JOIN customer AS c ON c.code = t1.code
WHERE c.code IS NULL

演示

相关问题