内连接、左连接、右连接图示及语法
一、内连接
- 同时将两表作为参考对象,根据ON(或WHERE)后给出的两表的条件将两表连接起来。结果是满足连接条件的交集即
A∩B={x∣x∈A∧x∈B}
- 显式内连接(使用
JOIN... ON
关键字)
SELECT columns
FROM table1
JOIN table2
ON table1.column_name = table2.column_name;
2.隐式内连接(使用WHERE
子句)
SELECT columns
FROM table1, table2
WHERE table1.column_name = table2.column_name;
二、左(外)连接
- 以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分,其余用NULL填充。
SELECT columns
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
三、右(外)连接
- 以右表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将右表所有的查询信息列出,而左表只列出ON后条件与右表满足的部分,其余用NULL填充。
SELECT columns
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
四、外连接
- 在内连接的基础上,补充上左表和右表未匹配的数据。
A∪B={x∣x∈A∨x∈B}
SELECT columns
FROM table1
FULL JOIN table2
ON table1.column_name = table2.column_name;
注意:MYSQL
没有FULL JOIN
五、图示