Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > mysql外连接

mysql实现外连接方式

作者:鸭鸭老板

今天小编就为大家分享一篇mysql实现外连接方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

一、外连接

1.左外连接(左侧的表完全显示就是左外连接)

select..from表1 left join 表2 on 条件(表1:为左表,表2:为右表)

-- 外连接
-- 创建stu
CREATE TABLE stu(
   id INT,
   `name` VARCHAR(32)
);
INSERT INTO stu VALUES(1,'jack'),(2,'tom'),(3,'kity'),(4,'nono')
SELECT*FROM stu
-- 创建exam
CREATE TABLE exam(
  id INT,
  grade INT
  
);
INSERT INTO exam VALUES(1,56),(2,76),(11,8)
SELECT*FROM exam
-- 左外连接
-- 查询所有人的成绩,没有成绩,也要显示姓名,id号,成绩显示为空
SELECT `name`,stu.id,grade 
        FROM stu LEFT JOIN exam
        ON stu.id = exam.id

2.右外连接(右侧的表完全显示就是右外连接)

select..from表1 reght join 表2 on 条件(表1:为左表,表2:为右表)

-- 右外连接
--  查询所显示有人成绩,没有名字的显示为空
SELECT `name`,stu.id,grade 
        FROM stu RIGHT JOIN exam
        ON stu.id = exam.id

二、内连接

select employee_id,department_name from `employees` e,`departments` d where e.department_id = d.department_id;

 

练习

-- 列出部门名称和这些部门的员工信息(名字和工作)同时列出那些没有员工的部门名
-- 左连接实现
SELECT dname,ename,job 
       FROM dept LEFT JOIN emp
       ON dept.deptno = emp.deptno
 -- 有连接实现
 SELECT dname,ename,job 
       FROM emp RIGHT JOIN dept
       ON dept.deptno = emp.deptno

在实际开发中,大多数使用内连接,很少使用外连接。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文