У меня есть таблица переводовMySQL LEFT JOIN с дополнительными пунктами возвращает несоответствующие строки
id | language | tr_text | orig_id
orig_id служит для ссылки на оригинальный текст, например,
id | language | tr_text | orig_id
1 | EN | Hello | 1
2 | EN | Bye | 2
3 |DE | Hallo | 1
Сейчас я пытаюсь создать запрос, который дает мне все исходные точки и всему переведенным из них, с нулями, где перевод был бы не вошел:
SELECT TransOrg.id, TransOrg.tr_text, TransOrg.tr_Language, TransLang.id, TransLang.tr_text, TransLang.tr_Language
FROM Translations AS TransOrg
LEFT JOIN Translations AS TransLang
ON TransOrg.id = TransLang.orig_id
AND TransOrg.Language = 'EN' AND TransLang.Language = 'DE'
Это, однако, возвращается что я хочу, плюс DE переводы:
1 | Hello | EN | 3 | Hallo | DE
2 | Bye | EN | null | null | null
3 | Hallo | DE | null | null | null < why is this here?!
Я думал
AND TransOrg.Language = 'EN'
состояние остановили бы это
Я попытался добавить предложение where, но оно все время давало мне ошибку, не могли бы вы показать мне, где должно быть предложение. Спасибо – jimmy
Я отредактировал ответ. Это должно дать вам все английские оригиналы, а также все переводы DE, если они существуют. – vhu