含义:又称多表查询,当查询的字段来自多个表时,就会用到连接查询
会发生笛卡尔乘积现象,表1有m行,表2有n行,结果m*n行
发生原因:没有有效的匹配条件
SELECT * FROM beauty;
SELECT * FROM boys;
SELECT NAME, boyName FROM boys,beauty;
添加有效的连接条件
SELECT NAME, boyName FROM boys,beauty
WHERE beauty.boyfriend_id = boys.id;
分类: 按年代分类 sql192标准(仅仅支持内连接) sql99标准【推荐】 (支持内连接+外连接(左外和右外)+交叉连接)
按功能分类 内连接(等值连接、非等值连接、自连接)外连接(左外连接、右外连接、全外连接)交叉连接
一、sql92标准
1、等值连接
案例1:查询女神名对应的男神名
SELECT NAME, boyName FROM boys,beauty
WHERE beauty.boyfriend_id = boys.id;
案例2:查询员工名和对应的部门名
SELECT last_name,department_name
FROM employees,departments
WHERE employees.`department_id`=departments.`department_id`;
可以为表起别名
案例:查询员工名、工种名、工种号
SELECT last_name,employees.job_id,job_title
FROM employees AS e,jobs
WHERE employees.`job_id`=jobs.`job_id`;
原文:https://www.cnblogs.com/stu-jyj3621/p/14289752.html