только что наткнулся на соединение, которое необходимо только при соблюдении определенного условия.
Поэтому я подумал, как отказаться от объединения, если в этом нет необходимости.
Некоторые поиски в Google и исследование SO поставили меня перед довольно сложными вопросами, связанными с профсоюзами и т. Д.
Позвольте мне показать вам простой пример для двух таблиц t1 и t2 с двумя полями id и val.
SELECT t1.id, t1.val, t2.val
FROM t1
JOIN t2 ON t1.id = t2.id
Теперь t1.val может иметь специальное значение -1, что делает объединение лишним, потому что тогда t2.val всегда равен NULL
.
SELECT t1.id, t1.val, IF(t1.val = -1, NULL, t2.val)
FROM t1
JOIN t2 ON t1.id = t2.id
Итак, если я присоединяюсь, и каждая ссылка на поле из объединенной таблицы является условной, а условие не выполняется, значит, объединение определенно излишне ... MySQL распознает это и отказывается от объединения?
Потому что моя математическая интуиция говорит мне, что это стандартная ситуация, которая должна эффективно обрабатываться профессиональной базой данных, такой как MySQL.
Имеет ли кто-нибудь инсайдерскую информацию об этом?
С наилучшими пожеланиями
Раффаэль