일부 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
왜 'group by'을 사용하지 않습니까? – Naga
현재 출력의 마지막 레코드에 저널 이름이없는 이유는 무엇입니까? –