我有两个表:FEATURE
和FEATURE_DETAILS
。关系是一个(FEATURE
)到多个(FEATURE_DETAILS
)。
feature_details_id | feature_id
1 1
1 2
1 4
2 1
2 2
2 4
2 5
3 1
3 5
如何选择包含例如的所有行? 5?
feature_details_id | feature_id
2 1
2 2
2 4
2 5
3 1
3 5
答案 0 :(得分:2)
首先获取feature_id为5的feature_deatails_id列表,然后将feature_deatails_id
传递给FEATURE_DETAILS
表以获得结果
尝试这样的事情
select *
from FEATURE_DETAILS
where feature_deatails_id in(
select feature_deatails_id from FEATURE_DETAILS where feature_id = 5)
或使用Max()Over()
窗口功能(首选方法)
select * from
(
select max(case when feature_id = 5 then 1 else 0 end)over(partition by feature_deatails_id) as cnt,
feature_deatails_id,feature_id
from FEATURE_DETAILS
)s
Where cnt = 1
答案 1 :(得分:1)
SELECT * FROM FEATURE_DETAILS WHERE feature_details_id IN (
SELECT feature_details_id from FEATURE_DETAILS WHERE feature_id=5
)