だから、私はこのSQLクエリを持っています:
select
o.id,
o.name,
d.name,
w.day,
o.suspended
from resource o
left join resource d on d.vehicle_ID = o.ID
left join week_days_availability_to_resource aw on d.ID=aw.resource_ID
left join week_days_availability w on aw.calendar_ID=w.ID
where o.IS_DELETED <> true
and (d.IS_DELETED is null or d.IS_DELETED <> true)
and o.marketId = 98
and (w.day = 3 or w.day is null)
and (o.suspended <> true or o.id in (-1))
必要なすべての行を返します-1つだけを除いて。テーブルresource o
に と結合された行がありresource d
、次に と結合します (このテーブルには と等しいweek_days_availability_to_resource
行がいくつかあります)。問題は、withに 3 に等しい行がないため、何も返さないことです。しかし、フィールドの値でこの行を返すことを期待していました-これが実際に行うことだと思ったからです。私が間違っているようです。
何か案は?resource_ID
d.ID
week_days_availability
day
mysql
NULL
day
left join