set @fuel_type='hsd';
select
ro.ro_id,
(case
when if(@fuel_type='ms',r.ms_field_input_id,r.hsd_field_input_id)= 0
then if(@fuel_type='ms',concat(r.remark_ms,r.remark_branded),r.remark_hsd)
else
f.field_name
end)
from
retail_outlets ro left join
volume_trackers r on ro.ro_id=r.ro_id,
field_inputs_master f
where
if(@fuel_type='ms',r.ms_field_input_id = f.field_id,r.hsd_field_input_id=f.field_id)
and ro.pricing_module=1 and if(@fuel_type='ms',ro.ms,ro.hsd)=1 and r.date_inserted='2017-02-06'
;
は私がdisplayes左外側は
左側の結合の右側の表からwhere句の条件を結合に移動します。何が起こっているのは、where句の制限がnull値を考慮しないため、null値が除外されているということです。別の言い方をすると、where句を使うと、left joinは内側joinのように振る舞います。具体的には、 'r.date_inserted = '2017-02-06''を結合critieraに移動する必要があります – xQbert
そして、表記を混在させないでください。あなたは本当にfrom節で '、'を使用してはいけません。 – xQbert
@xQbert r.date_insertedをジョイン基準に移動しようとしましたが、それでも動作しませんでした。 –