JAVA中表连接查询

1 表连接查询

1.1 基本格式
  • select fieldName
    from tbName1
    连接符 tbName2
    on 条件
1.2 笛卡尔乘积【避免】
  • – 笛卡尔乘积,没有约束条件,数据库匹配发生相乘关系,结果也不是预期结果
  • – 无意义结果
    select employee_id, first_name
    from t_employees
    inner join t_jobs;
1.3 内连接查询 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

1.4 内连接查询 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;
1.5 内连接查询 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;
1.6 左外连接 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;

1.7 右外连接 right
  • – 右外连接查询,右表是主表,要求右表完整展示,左表匹配右表数据,如果左表没有数据匹配,显示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;

你可能感兴趣的:(笔记)