ここでテーブルを結合しようとしています。そのテーブルの生徒も表示するようにTable2というテーブルを追加します。混乱しているのは、すでにこのクエリで結合が行われているため、既存のコードを破損することなく、そのTable2の生徒も表示されるように、別の結合を追加する必要があります。複数のテーブルを結合するPostgreSQL
String selS = "select distinct stdistrict,stschool,stsidno,"
+ " sname as name,stgrade,"
+ "S.recnum as recnum, S.stldate as stldate,scsec,sctea,sccor,scgrade,scclsprd,scgrdprd,"
+ "case when P.scchangestartdate is null then C.clstart else "
+ "P.scchangestartdate end as scchangestartdate, "
+ "case when S.stedate is null or S.stedate<C.clstart "
+ "then C.clstart else S.stedate end as stedate "
+ "from stTable1 as S join schedprd as P on "
+ "(scyear=styear and scdistrict=stdistrict and scschool=stschool "
+ "and stsidno=scsidno and (scsec is not null and scsec<>'')) "
+ "left outer join calendar as C on (C.clyear=S.styear and "
+ "C.cldistrict=S.stdistrict and C.clschool=S.stschool and C.cltype='10') "
+ "where styear=? and stdistrict=? ";
表1と表2の学生は異なりますか学生の?表1と表2の構造は同じですか? –
構造体が同じtable1にはstdistrict、stschoolなどの変数が含まれています。 –
データ構造と表間の関係がわからないと、どの結合がレコードの重複を引き起こしているのか分かりません。これにより、効率的にクエリを書き換えることができなくなります。 –