上のすべての行(テーブルのいずれか、または両方で)を返し参加:SQLは、私は、コンテンツを分類する列を持つテーブルを持っている状態
id lang string
1 EN text1_en
1 DE text1_de
1 FR text1_fr
2 EN text2_en
2 DE text2_de
3 DE text3_de
3 FR text3_fr
私のような結果を得るためにしたい:
id lang string id lang string id lang string
1 EN text1_en 1 DE text1_de 1 FR text1_fr
2 EN text2_en 2 DE text2_de NULL NULL NULL
NULL NULL NULL 3 DE text3_de 3 FR text3_fr
select
c1.id,c1.lang,c1.string,
c2.id,c2.lang,c2.string,
c3.id,c3.lang,c3.string
from
mytable c1
left join mytable c2 on (c1.id=c2.id and c2.lang='DE')
left join mytable c3 on (c1.id=c3.id and c3.lang='FR')
where
c1.lang='EN'
order by c1.id
私はIDの1と2
ための唯一の結果を得るしかし:私は参加する最初に試みた私はc1.lang='EN'
へon
条件を移動した場合
、私は最初の3列(だけではなくlang='EN'
)
私は 'どこでc1.lang( 'DE'、 'FR')ではなく' 'c1.langがヌルかc1.lang = 'EN' 'であるが、必要に応じて3行目に移動します。 – andrixnet