Mysql SQL n:m查询,如果相关表中有数据,则返回TRUE或FALSE

Mysql SQL n:m查询,如果相关表中有数据,则返回TRUE或FALSE,mysql,sql,Mysql,Sql,如果标题混淆了,很抱歉。我不知道如何正确地解释这个问题。 我希望现在能更成功 我在车辆和选装件之间有一个n-to-m关系 表格车辆: id, name 表格可选\u有\u辆车 optional_id, vehicle_id id, name 表格选项 optional_id, vehicle_id id, name 我需要构建一个查询,以按车辆获取所有可选数据,如果车辆具有可选数据,则返回true,如果没有,则返回false 我不知道从哪里开始,非常感谢您的帮助。您可以交叉连接车辆和选

如果标题混淆了,很抱歉。我不知道如何正确地解释这个问题。 我希望现在能更成功

我在车辆和选装件之间有一个n-to-m关系

表格车辆:

id, name
表格可选\u有\u辆车

optional_id, vehicle_id
id, name
表格选项

optional_id, vehicle_id
id, name
我需要构建一个查询,以按车辆获取所有可选数据,如果车辆具有可选数据,则返回true,如果没有,则返回false


我不知道从哪里开始,非常感谢您的帮助。

您可以交叉连接
车辆
选项
,并检查
可选\u has\u车辆
中是否有相应的记录,使用
左连接

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
如果给定的
可选
可用于此车辆,则列
具有_可选
生成
1
,否则给出
0

请参见: