А вот я тут подумал на такую тему:
Есть запрос с объединением по JOIN. К двум таблицам. Поле из второй таблицы, фигурирующее в выборке может быть NULL. То есть в выборку не попадёт если только LEFT JOIN не задать. То есть:
Код: Выделить всё
SELECT UN.UNITID, UN.UNITNAME, OD.FLAT
FROM UNITS UN
LEFT JOIN ORDERS OD
ON (OD.DRIVERID = UN.UNITID)
Квартира не обязательно задана, может быть без неё. Поэтому чтобы получить полные данные ставим LEFT JOIN Пример надуманный, для простоты.
Но с другой стороны что будет если сделать вот так:
Код: Выделить всё
SELECT UN.UNITID, UN.UNITNAME, COALESCE(OD.FLAT, 'НЕТУ_НИФИГА')
FROM UNITS UN
JOIN ORDERS OD
ON (OD.DRIVERID = UN.UNITID)
?!? Как это будет работать? Запрос к реальным данным делал - что-то не понял нифига - количество записей меньше чем в первом запросе, но с другой стороны присутствуют строки с "НЕТУ_НИФИГА" ?!? При такой конструкции будут "теряться" записи или нет? Это я к тому, что может в подобных случаях удастся таким "финтом" избавится от LEFT JOIN в пользу внутреннего JOIN ?