Sql 想找出仅由一位作者编写且p_id=1的书吗
我有三张桌子 这是Person表: 这是汽车桌: 这是多对多的Person\u car表hloding join列: 现在我想找出由一个人拥有且p_id=1的Sql 想找出仅由一位作者编写且p_id=1的书吗,sql,oracle,oracle-sqldeveloper,having-clause,Sql,Oracle,Oracle Sqldeveloper,Having Clause,我有三张桌子 这是Person表: 这是汽车桌: 这是多对多的Person\u car表hloding join列: 现在我想找出由一个人拥有且p_id=1的c_id(汽车id) 这意味着在这个场景中,我应该获得c_id,因为100 bcs c_id 200属于p_id 1和2 请帮助我编写sql查询。您可以使用聚合: select c_id from person_car group by c_id having count(*) = 2
c_id
(汽车id)
这意味着在这个场景中,我应该获得c_id,因为100 bcs c_id 200属于p_id 1和2
请帮助我编写sql查询。您可以使用聚合:
select c_id
from person_car
group by c_id
having count(*) = 2 -- owned by 2 persons
and max(case when p_id = 100 then 1 else 0 end) = 1 -- including p_id 100
在MySQL中,我们可以将最后一个条件缩短为:
and max(p_id = 100) = 1
看看你的问题,我知道你想找到只有一个人拥有的汽车,p_id=1只是一个例子。如果是这种情况,请尝试:
select
c.id as car_id,
c.color as car_color,
c.model as car_model,
p.id as person_id,
p.first_name || ' ' || p.last_naem as person_name,
from
car c
join person_car pc on (pc.c_id = c.id)
join pesron p on (p.id = pc.p_id)
where
c.id in (select c_id from peson_car group by c_id having count(1) = 1)
谢谢。MySQL还是Oracle?请只标记一个数据库。join person\u car pc on(pc.c\u id=c.id)join pesron p on(p.id=pc.p\u id)…这两个join语句将如何工作请解释..我不擅长plsql。@sourav-此连接将提取car和person对的数据。谢谢