我有一张表(PATHS),其中包含wbout 80.000条记录。 记录包含ID和PATHID。 例如:
ID:PATH_ID
<小时/> 1:102001C31 2:102001C32 3:102001C33 4:102001C34
现在我想用一个语句检查我的select中哪些值不在表PATHS中。
例如,如果我执行此查询:
select * from PATHS where PATH_ID not in (PATH_ID not in ("102001C31","102001C32","102001C3A")
我得到了值“102001C3A。
这可能吗?
答案 0 :(得分:1)
如果您将正在测试的值放入表格那么,您可以找到不匹配的行。下面我将您正在测试的3个值放入&#34;派生表&#34;从那里我能够返回匹配的行。
MySQL 5.6架构设置:
CREATE TABLE PATHS
(
`ID` mediumint(8) unsigned NOT NULL auto_increment primary key,
`PATH_ID` varchar(9))
;
INSERT INTO PATHS
(`PATH_ID`)
VALUES
('102001C31'),
('102001C32'),
('102001C33'),
('102001C34')
;
查询1 :
select t.path_id
from (
## this is an example only ##
select "102001C31" as path_id union all
select "102001C32" as path_id union all
select "102001C3A" as path_id
) t
left join paths p on t.path_id = p.path_id
where p.path_id is null
<强> Results 强>:
| path_id |
|-----------|
| 102001C3A |