I am compiling a fairly simple query with a subquery in a JOIN statement. It only works if I include * in the subquery. Why?
It works
$sql = 'SELECT locations.id, title, name, hours.lobby FROM locations LEFT JOIN states ON states.id = locations.state_id LEFT JOIN (SELECT *, type_id IS NOT NULL AS lobby FROM location_hours) AS hours ON locations.id = hours.location_id GROUP BY locations.id';
Is not
$sql = 'SELECT locations.id, title, name, hours.lobby FROM locations LEFT JOIN states ON states.id = locations.state_id LEFT JOIN (SELECT type_id IS NOT NULL AS lobby FROM location_hours) AS hours ON locations.id = hours.location_id GROUP BY locations.id';
Should I do it like this? I thought no better if you don't need all the fields?
source share