下面是一个名为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
因此,基于页面名称和源语言,我需要得到这个条目和另一个带有目标语言的条目,其中别名与第一个结果相同
我试过了,但没有成功(只得到第一个条目)
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
它需要一个联合,但我不知道如何使用从第一个查询到联合查询的页面别名
最佳答案
使用IN
运算符:
select *
from pages
where page_alias in (
select page_alias
from pages
where page_name = 'pagina1' and lang = 'es'
)
and lang in ('en', 'es')
SqlFiddle.