如果标题混淆了,对不起。我不知道如何正确解释这个问题。 我希望现在能更成功。
我在车辆和可选车辆之间有 n 到 m 的关系
表车辆:
id, name
表 optional_has_vehicles
optional_id, vehicle_id
表选项
id, name
我需要构建一个查询来按车辆获取所有最佳数据,如果车辆有可选数据,则返回 true,如果没有,则返回 false。
我不知道从哪里开始,任何帮助都值得赞赏。
可以交叉连接vehicles
和optionals
,并检查optional_has_vehicles
中是否有对应的记录,并带有left join
:
select
v.id vehicle_id,
v.name vehicle_name,
o.id optional_id,
o.name optional_name
(ov.optional_id is not null) has_optional
from
vehicles v
cross join optionals o
left join optional_has_vehicles ov
on ov.vehicle_id = v.id
and ov.optional_id = o.id
如果给定的optional
可用于此车辆,则列has_optional
产生1
,否则0
。