| 
                         查询结果: 
- +------+------+---------+---------+ 
 - | A_PK | B_PK | A_Value | B_Value | 
 - +------+------+---------+---------+ 
 - |    2 | NULL | only a  | NULL    | 
 - +------+------+---------+---------+ 
 - 1 row in set (0.01 sec) 
 
  
2、RIGHT JOIN EXCLUDING INNER JOIN 
返回右表有但左表没有关联数据的记录集。 
文氏图: 
  
 
RIGHT JOIN EXCLUDING INNER JOIN 
示例查询: 
- SELECT A.PK AS A_PK, B.PK AS B_PK, 
 -        A.Value AS A_Value, B.Value AS B_Value 
 - FROM Table_A A 
 - RIGHT JOIN Table_B B 
 - ON A.PK = B.PK 
 - WHERE A.PK IS NULL; 
 
  
查询结果: 
- +------+------+---------+---------+ 
 - | A_PK | B_PK | A_Value | B_Value | 
 - +------+------+---------+---------+ 
 - | NULL |    3 | NULL    | only b  | 
 - +------+------+---------+---------+ 
 - 1 row in set (0.00 sec) 
 
  
3、FULL OUTER JOIN EXCLUDING INNER JOIN 
返回左表和右表里没有相互关联的记录集。 
文氏图: 
  
 
FULL OUTER JOIN EXCLUDING INNER JOIN 
示例查询: 
- SELECT A.PK AS A_PK, B.PK AS B_PK, 
 -        A.Value AS A_Value, B.Value AS B_Value 
 - FROM Table_A A 
 - FULL OUTER JOIN Table_B B 
 - ON A.PK = B.PK 
 - WHERE A.PK IS NULL 
 - OR B.PK IS NULL; 
 
  
因为使用到了 FULL OUTER JOIN,MySQL 在执行该查询时再次报错。 
- ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FULL OUTER JOIN Table_B B 
 - ON A.PK = B.PK 
 - WHERE A.PK IS NULL 
 - OR B.PK IS NULL' at line 4 
 
  
应当返回的结果(用 UNION 模拟): 
- mysql> SELECT * 
 -     -> FROM Table_A 
 -     -> LEFT JOIN Table_B 
 -     -> ON Table_A.PK = Table_B.PK 
 -     -> WHERE Table_B.PK IS NULL 
 -     -> UNION ALL 
 -     -> SELECT * 
 -     -> FROM Table_A 
 -     -> RIGHT JOIN Table_B 
 -     -> ON Table_A.PK = Table_B.PK 
 -     -> WHERE Table_A.PK IS NULL; 
 - +------+--------+------+--------+ 
 - | PK   | Value  | PK   | Value  | 
 - +------+--------+------+--------+ 
 - |    2 | only a | NULL | NULL   | 
 - | NULL | NULL   |    3 | only b | 
 - +------+--------+------+--------+ 
 - 2 rows in set (0.00 sec) 
 
  
总结                         (编辑:泰州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |