Я работаю с таблицами перевода слов (word и word_translate). Мне нужно получить поле id_word , даже если нет дочерней строки ... но отчасти проблема в том, что я уже фильтрую один из столбцов дочерней таблицы в операторе WHERE.
У меня есть 2 таблицы:
- word : id_word, lang, word
- word_translate : id_translate, id_word, lang, word
Если я ищу существующий перевод слова (gato, с испанского sh на английский sh):
SELECT
word.id_word AS id_word,
word_translate.id_translate AS id_translate
FROM word LEFT JOIN word_translate ON word_translate.id_word = word.id_word
WHERE word.lang = "es" AND word_translate.lang = "en" AND word.word = "gato"
Возвращает:
- id_word = 72
- id_translate = 17
Но, если я ищу перевод слова, который не Существуют (Гато, от испанского sh на португальский):
SELECT
word.id_word AS id_word,
word_translate.id_translate AS id_translate
FROM word LEFT JOIN word_translate ON word_translate.id_word = word.id_word
WHERE word.lang = "es" AND word_translate.lang = "pt" AND word.word = "gato"
Возвращает пустой результат.
Мне нужно, чтобы он вернулся:
- id_word = 72
- id_translate = NULL
Вот SQL Скрипка .
Есть идеи? Спасибо!