[英]Select rows which do not meets criteria
我有FEATURE和FEATURE_DETAILS表。 FEATURE_DETAILS可以有很多功能。
FEATURE_DETAILS
feature_deatails_id | feature_id
1 1
1 2
1 4
2 1
2 2
2 4
2 5
我在选择没有5个feature_id的feature_deatails_id时遇到问题。 因此结果应为:
feature_deatails_id | feature_id
1 null
这应该解决您的目的
with data as (
select 1 as feature_details_id, 1 feature_id from dual
union select 1,2 from dual
union select 1,4 from dual
union select 2,1 from dual
union select 2,2 from dual
union select 2,4 from dual
union select 2,5 from dual
)
select distinct feature_details_id, NULL feature_id from data
where feature_details_id not in (
select feature_details_id from data
where feature_id = 5)
;
上面的查询将要做的是-
用NOT IN应该可以
SELECT DISTINCT FEATURE_DETAILS_ID, NULL AS FEATURE_ID
FROM FEATURE_DETAILS
WHERE FEATURE_DETAILS_ID NOT IN (
SELECT FEATURE_DETAILS_ID FROM FEATURE_DETAILS WHERE FEATURE_ID = 5
);
选择feature_deatails_id,从feature_details中将null作为feature_id,其中feature_id!= 5
这应该可以解决您的目的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.