반응형
여러 테이블에서 하나의 쿼리에 여러 개의 완전한 조인
여러 개의 테이블이 있는 데이터베이스가 있습니다. 모든 테이블의 모든 내용을 하나의 쿼리로 보여주고 싶습니다(나중에 데이터베이스의 조사에 사용합니다).
테이블 두 개로 해봤습니다.
[SELECT
reception.num_courrier, reception.date_recep, reception.expediteur, reception.objet,
lect_prefet.date_lect_prefet, lect_prefet.instructions, lect_prefet.caractere
FROM
reception
FULL JOIN
lect_prefet ON reception.num_courrier = lect_prefet.num_courrier][2]
그러나 오류를 반환합니다.
10.4.14-MariaDB 버전을 사용하고 있습니다.
하나의 방법은 여러 개를 사용합니다.left join
s, 사용 가능한 모든 ID부터 시작합니다.
SELECT *
FROM (SELECT r.num_courrier
FROM reception r
UNION -- on purpose to remove duplicate
SELECT l.num_courrier
FROM lect_prefet l
) c LEFT JOIN
reception r
USING (num_courrier) LEFT JOIN
lect_prefet l
USING (num_courrier);
이 접근 방식은 동일한 키를 사용하여 더 많은 테이블로 쉽게 일반화할 수 있습니다.JOIN
.
다음을 시도해 보십시오.
SELECT * FROM reception r
LEFT OUTER JOIN lect_prefet lp ON lp.num_courrier = r.num_courrier
LEFT OUTER JOIN lect_sg ls ON ls.num_courrier = r.num_courrier
LEFT OUTER JOIN ad ad ON ad.num_courrier = r.num_courrier
LEFT OUTER JOIN agt agt ON agt.num_courrier = r.num_courrier
만약 위의 내용이 통하지 않는다면, 다른 사람들이 라이브 스키마를 사용해 볼 수 있도록 SQLFiddle 예제를 제공해 주시면 좋겠습니다.
모두 감사합니다, 정말 도와주셔서 감사합니다, @Gordon Linoff[행 추가]의 답변에 따라 예상했던 대로입니다. 감사합니다.
SELECT * FROM (
SELECT r.num_courrier FROM reception r UNION
SELECT l.num_courrier FROM lect_prefet l UNION
SELECT s.num_courrier FROM lect_sg s UNION
SELECT g.num_courrier FROM agt g UNION
SELECT d.num_courrier FROM ad d ) c
LEFT JOIN reception r USING (num_courrier)
LEFT JOIN lect_prefet l USING (num_courrier)
LEFT JOIN lect_sg s USING (num_courrier)
LEFT JOIN agt g USING (num_courrier)
LEFT JOIN ad d USING (num_courrier);
언급URL : https://stackoverflow.com/questions/67253477/multiple-full-joins-in-one-query-on-multiple-tables
반응형
'programing' 카테고리의 다른 글
다른 스키마에서 두 개의 테이블 쿼리 (0) | 2023.10.07 |
---|---|
모듈이 개체가 할 수 있는 것과 동일한 속성을 가질 수 있습니까? (0) | 2023.10.07 |
Null이거나 JavaScript에서 정의되지 않은 경우 값 바꾸기 (0) | 2023.10.07 |
두 열의 좌측 외측 접합 성능 문제 (0) | 2023.10.07 |
오토젠의 직업은 무엇입니까?Linux에서 c++ 패키지를 구축할 때 sh (0) | 2023.10.07 |