私はいくつかのSQLの専門家の助言を求めたいと思います。2ユニオンsqlステートメントから別のレコードを取得
スタッフと卒業生のテーブルから著者名を取得するためのSQL文を作成しました。著者の名前はどちらの表にもあります。つまり、著者名が職員であれば論理があり、それ以外の場合は卒業生の表を探します。
ここに私のSQLステートメントがありますが、それはスタッフと卒業生の両方のテーブルから同じ著者名を表示しているようです。
SELECT DISTINCT AP.Author_name, P.people_id, P.Name, P.Journal_name, AP.Author_sortorder FROM `Paper_Author` AS AP LEFT JOIN `People` AS P ON (AP.Author_id = P.people_id) WHERE AP.Paper_id =3838
UNION
SELECT DISTINCT AN.Author_name, N.People_id, N.Name, N.Journal_name, AN.Author_sortorder FROM `Paper_Author` AS AN LEFT JOIN `Alumni` AS N ON (AN.Author_id = N.People_id) WHERE AN.Paper_id =3838 ORDER BY Author_sortorder LIMIT 0 , 30
結果:
people_id-- Author_name-- Journal_name--
1 Name1 A1
2 Name2 B1
3 Name3 C1
3 Name3 C1
4 Name4 D
4 Name4
期待される結果:
people_id-- Author_name-- Journal_name--
1 Name1 A1
2 Name2 B1
3 Name3 C1
4 Name4 D
なぜ「グループ化」を使用しないのですか? – Naga
現在の出力の最後のレコードにジャーナル名がないのはなぜですか? –