MySQL表连接

Amber ·
更新时间:2024-09-21
· 617 次阅读

表连接查询【重点】 1 基本格式 select fieldName from tbName1 连接符 tbName2 on 条件 笛卡尔乘积【避免】 -- 笛卡尔乘积,没有约束条件,数据库匹配发生相乘关系,结果也不是预期结果 -- 无意义结果 select employee_id, first_name from t_employees inner join t_jobs; 内连接查询 inner join on 两张表 -- 查询所有部门部门名,和对应的员工信息id和first_name select t_departments.department_name, t_employees.employee_id, t_employees.first_name -- 查询内容 from t_employees -- 从员工表中查询 inner join t_departments -- 内连接部门表 on t_employees.department_id = t_departments.department_id; -- 条件限制员工表中的部门Id = 部门表中的部门id -- 查询所有部门部门名,和对应的员工信息id和first_name -- 给予表格一个别名,方便使用 select d.department_name, e.employee_id, e.first_name -- 查询内容 from t_employees e-- 从员工表中查询 inner join t_departments d-- 内连接部门表 on e.department_id = d.department_id; -- 条件限制员工表中的部门Id = 部门表中的部门id 内连接查询 inner join on 四张表 -- 查询所有员工对应的ID号,名字,部门名称,和国家对应名字 select te.employee_id, te.first_name, td.department_name, tc.country_name from t_employees te inner join t_departments td on te.department_id = td.department_id inner join t_locations tl on td.location_id = tl.location_id inner join t_countries tc on tl.country_id = tc.country_id; 内连接查询 inner join on 五张表 -- 查询所有员工对应的ID号,名字,工作职称,部门名称,和国家对应名字 select te.employee_id, te.first_name, tj.job_title, td.department_name, tc.country_name from t_employees te inner join t_jobs tj on te.job_id = tj.job_id inner join t_departments td on te.department_id = td.department_id inner join t_locations tl on td.location_id = tl.location_id inner join t_countries tc on tl.country_id = tc.country_id; 左外连接 left join on -- 左外连接 左表是主表,要求左表完整显示,右表匹配左表数据,如果右表没有数据匹配,显示null -- 查询所有的员工信息ID,first_ame,已经对应的部门名字 select te.employee_id, te.first_name, td.department_name from t_employees te left join t_departments td on te.department_id = td.department_id; 右外连接 right join on -- 右外连接查询,右表是主表,要求右表完整展示,左表匹配右表数据,如果左表没有数据匹配,显示null -- 查询所有部门对应员工信息,员工信息没有显示null select td.department_name,te.employee_id, te.first_name from t_employees te right join t_departments td on te.department_id = td.department_id;
作者:weixin_44945658



连接 Mysql mysql表

需要 登录 后方可回复, 如果你还没有账号请 注册新账号