sql - 想找出仅由单个作者撰写且 p_id=1 的 book_id
问题描述
我有 3 张桌子。
这是人员表:
这是汽车表:
这是 Person_car 表的多对多连接列:
现在我想找出c_id
一个人拥有的(汽车ID)并且p_id = 1。
这意味着在这种情况下,我应该得到 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
推荐阅读
- java - 如何通过注释有条件地使用自定义 JsonSerializer
- twilio - 我的 Twilio 号码是否应该能够接收来自任何号码的短信(在我的国家/地区)?
- java - 为基于 Java 的 Web 应用程序创建许可证
- php - PhP 中的 Bot Telegram 问题(键盘和内联)
- java - 会话未得到维护
- angular - 使用 webpack 排除 angular 指令
- r - 故障保护恢复分区
- android - 启用 gradle '离线模式' 并且同步项目在 android studio 中弹出,即使我取消选中了离线模式
- lua - lua_rotate 是做什么的?
- tensorflow - 如何以 SavedModel 格式导出 TensorFlow 模型