내 필요 result.But를 얻기 위해 조인 나는 두 테이블 payroll_advance 및 payroll_advrtn을 가지고, 내가 완전 외부를 어떻게해야, 나는 완전 외부 MySQL은 가능하지 않다 가입 확신도 내가 완전 외부 알고 조인은 union을 사용하여 가능합니다. 그러나 다음 쿼리에서 어떻게 조인 할 수 있는지 모르겠습니다.mysql에서 두 테이블을 결합하기 위해 전체 외부 조인을 수행하는 방법은 무엇입니까?
내 payroll_advance 표는 다음과 같은 결과를 생성합니다.
SELECT _id,_tid,_dt,sum(_amount) as _advance FROM payroll_advance WHERE YEAR(_dt)=YEAR(CURDATE()) AND MONTH(_dt) = MONTH(CURDATE()) group by _tid;
+-----+-------+------------+---------+
| _id | _tid | _dt | _advance|
+-----+-------+------------+---------+
| 17 | hjg | 2012-04-18 | 2151 |
| 22 | RKT01 | 2012-04-10 | 2098 |
| 14 | RKT04 | 2012-04-18 | 1511 |
| 16 | RKT09 | 2012-04-09 | 250 |
| 15 | RKT10 | 2012-04-17 | 1313 |
| 8 | RKT21 | 2012-04-03 | 1321 |
| 19 | RKT31 | 2012-04-26 | 2512 |
| 20 | RKT33 | 2012-04-10 | 2250 |
| 25 | T01 | 2012-04-11 | 2500 |
+-----+-------+------------+---------+
그리고 payroll_advrtn은 다음 결과를 제공합니다.
SELECT _id,_tid,_dt,sum(_amount) as _advrtn FROM payroll_advrtn WHERE YEAR(_dt) = YEAR(CURDATE()) AND MONTH(_dt) = MONTH(CURDATE()) group by _tid;
+-----+-------+------------+---------+
| _id | _tid | _dt | _advrtn |
+-----+-------+------------+---------+
| 9 | RKT02 | 2012-04-10 | 2500 |
| 8 | RKT04 | 2012-04-20 | 150 |
+-----+-------+------------+---------+
하지만 위의 두 결과를 결합하여 다음과 같은 결과를 원합니다.
+------+-------+-------+------------+----------+---------+
| _id | _tid | _tid | _dt | _advance | _advrtn |
+------+-------+-------+------------+----------+---------+
| 17 | hjg | NULL | 2012-04-18 | 2151 | NULL |
| 22 | RKT01 | NULL | 2012-04-10 | 999 | NULL |
| 14 | RKT04 | RKT04 | 2012-04-18 | 11 | 150 |
| 16 | RKT09 | NULL | 2012-04-09 | 250 | NULL |
| 15 | RKT10 | NULL | 2012-04-17 | 1313 | NULL |
| 8 | RKT21 | NULL | 2012-04-03 | 1321 | NULL |
| 19 | RKT31 | NULL | 2012-04-26 | 2512 | NULL |
| 20 | RKT33 | NULL | 2012-04-10 | 2250 | NULL |
| 25 | T01 | NULL | 2012-04-11 | 2500 | NULL |
| NULL | NULL | RKT02 | NULL | NULL | 2500 |
+------+-------+-------+------------+----------+---------+
감사합니다. 감사합니다. RIGHT OUTER JOIN
와 FULL OUTER JOIN
you can doLEFT OUTER JOIN
및 UNION
(
이
지원하지 않습니다 제공)을 수행하기 위해MySql
여전히
FULL OUTER JOIN
귀하의 결과 미상 FULL JOIN처럼 보이지 않습니다. –
@ypercube : 그렇습니다. 특별히 보이지는 않지만, 결과가 나오지 않을 때 Op가 약간의 실수를했을 수도 있습니다. 나는'FULL OUTER JOIN' 결과를주는 답을주었습니다. – Anonymous