Я пытаюсь присоединиться к некоторым таблицам с запросом, как показано ниже. Потому что я хочу получить c.name в идеале, на что ссылается таблица b. Если таблица b не имеет строк в результирующем наборе или строка b не ссылается на c, то просто получите имя c.name, на которое ссылается таблица.Заказ предложений левого объединения
SELECT a.*, c.name
FROM a
LEFT JOIN b ON a.b_id = b.id
LEFT JOIN c ON (b.c_id IS NOT NULL AND b.c_id = c.id) OR a.c_id = c.id
Однако MySQL всегда присоединения C с a.c_id = c.id
и получать меньше благоприятствования c.name. Можно ли это избежать, или mySQL пытается получить полный набор результатов как можно быстрее?
У вас есть несколько определений таблиц (как создавать операторы таблицы), тестовые данные (как заявления вставки) и ожидаемый результат (как-то легко проверить). Я действительно хочу проверить ваш запрос, но не хочу тратить время на создание таблиц и тестовых данных. Я могу быстро выполнить их в своей SQL IDE. Считаете ли вы использование http://sqlfiddle.com? –