Я работаю над своим сайтом и застрял при написании запроса MySQL, который использует синтаксис «LEFT JOIN». Простой пример моего запроса показан ниже:
SELECT p.surname, f.f_path as players_image
FROM player p LEFT JOIN file f ON p.id_image = f.id_file
Проблема в том, что я на самом деле использую 8 разных таблиц, чтобы получить необходимые данные, и я присоединяюсь к ним после WHERE
предложение (мне было проще это сделать):
SELECT p.surname, f.f_path as players_image
FROM player, file
WHERE p.id_image = f.id_file
Могу ли я как-то изменить вторые запросы WHERE
предложение, чтобы получить тот же результат, что и первый запрос возвращает?
Я знаю, что Oracle DB использует такой синтаксис, как WHERE p.id_image(+) = f.id_file
управлять этим. Он попробовал это на базе данных MySQL, но выдал ошибку.
Исходный SQL-запрос (имена таблиц разные):
SELECT sp.id_speletajs, sp.vards, sp.uzvards, ss.numurs, f.f_path as attels, k.id_komanda, p.nosaukums as pozicija
FROM speletajs sp, fails f, speletaja_statistika ss, cempionata_komanda ck, komanda k, cempionats c, sezona s, pozicija p
WHERE
sp.id_attels = f.id_fails
and sp.id_speletajs = ss.id_speletajs
and ss.id_cempionata_komanda = ck.id_cempionata_komanda
and ss.id_pozicija = p.id_pozicija
and ck.id_komanda = k.id_komanda
and ck.id_cempionats = c.id_cempionats
and c.id_sezona = s.id_sezona
and k.mana_komanda = true
and s.nosaukums = (select max(s1.nosaukums) from sezona s1)
Задача ещё не решена.
Других решений пока нет …