SQL FULL JOIN 关键字
只要在其中某个表中存在匹配,FULL JOIN 关键字就会返回行。
- FULL JOIN 关键字语法
SELECT COLUMN_NAME(S) FROM TABLE_NAME1 FULL JOIN TABLE_NAME2 ON TABLE_NAME1.COLUMN_NAME=TABLE_NAME2.COLUMN_NAME
注释:在某些数据库中,FULL JOIN 称为FULL OUTER JOIN。
DUCK表:
DUCK_ID | NAME | YEAR |
---|---|---|
HK234 | DUCK01 | 2016 |
DK244 | DUCK02 | 2016 |
KK134 | DUCK03 | 2016 |
MEAT表:
MEAT_ID | KIND | PRODUCTION_YEAR | DUCK_ID |
---|---|---|---|
LO23 | DUCK | 2016 | KK134 |
LO93 | DUCK | 2016 | DK244 |
LO03 | DUCK | 2016 | HK234 |
LO66 | DUCK | 2016 | CO134 |
全连接(FULL JOIN)实例
列出所有MEAT和DUCK数据
SELECT M.MEAT_ID,D.DUCK_ID,M.KIND,M.PRODUCTION_YEAR,D.YEAR FROM MEAT M FULL JOIN DUCK D ON M.DUCK_ID=D.DUCK_ID ORDER BY M.MEAT_ID;
结果:
MEAT_ID | DUCK_ID | KIND | PRODUCTION_YEAR | YEAR |
---|---|---|---|---|
LO03 | HK234 | DUCK | 2016 | 2015 |
LO23 | KK134 | DUCK | 2016 | 2016 |
LO66 | DUCK | 2016 | ||
LO93 | DK244 | DUCK | 2016 | 2016 |
FULL JOIN 关键字会从左表 (MEAT) 和右表 (DUCK) 那里返回所有的行。如果 “MEAT” 中的行在表 “DUCK” 中没有匹配,或者如果 “DUCK” 中的行在表 “MEAT” 中没有匹配,这些行同样会列出。