SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
join可以分为内连接和外连接,外连接分为左连接、右连接和全连接
现有两个表 员工表和部门表
员工表
部门表
1、内连接(包括相等连接和自然连接)
如:
SELECT * from employee,dept WHERE employee.deptid = dept.id;
或:
SELECT * from employee JOIN dept ON employee.deptid = dept.id; ##join和inner join是相同的
2、Left join(LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。)
SELECT * from employee LEFT JOIN dept ON employee.deptid = dept.id;
3、right join(RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。)
SELECT * from employee RIGHT JOIN dept ON employee.deptid = dept.id;
4、full join(FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行。如果 "Persons" 中的行在表 "Orders" 中没有匹配,或者如果 "Orders" 中的行在表 "Persons" 中没有匹配,这些行同样会列出。),基本不会用到,mysql不支持
SELECT * from employee FULL join dept on employee.deptid = dept.id;