Вот пример таблицы с именем pages
id page_name page_alias lang
1 pagina1 pagina1 es
2 pagina2 pagina2 es
3 page1 pagina1 en
4 page2 pagina2 en
Я знаю page_name
= pagina1
, источник lang
= es
и пункт назначения lang
= en
<25212370>999723>
Итак, исходя из имени страницы и исходного языка, мне нужно получить эту запись и еще одну запись с целевым языком, где псевдоним совпадает с первым результатом
Я пробовал это, но не работает (получить только первую запись)
SELECT A.* FROM pages AS A
JOIN pages AS B
ON
B.page_alias = A.page_alias AND B.lang = 'en'
WHERE A.page_name = 'pagina1' AND A.lang = 'es'
Ожидаемый результат запроса (две строки):
1 pagina1 pagina1 es
3 page1 pagina1 en
Кажется, нужен UNION, но я не знаю, как использовать page_alias из первого запроса в запросе UNION
Кажется, это близко к моим потребностям, но получить все записи (если есть другие языки с тем же
page_alias
). Мне нужен только языкes
и языкen
.... см. sqlfiddle.com/# !9/c82d84/1Вы всегда можете добавить дополнительный фильтр в предложение
where
, см. обновленный ответ.