首页 > 数据库 >sql左外连接、右外连接、全外连接

sql左外连接、右外连接、全外连接

时间:2023-09-17 10:33:10浏览次数:32  
标签:JOIN name 老师 全外 右外 连接 teacher 姓名 id


一 语法

1 左外连接 LEFT  JOIN或LEFT OUTER JOIN 

2 右外连接  RIGHT  JOIN 或 RIGHT  OUTER  JOIN

3  全外连接  FULL  JOIN 或 FULL OUTER JOIN   mysql不支持全外连接 等价方式 FULL  JOIN  =  LEFT  JOIN + RIGHT  JOIN 

二 demo

两张表,表结构如下

student 表

CREATE TABLE `student` (
  `s_id` varchar(20) NOT NULL DEFAULT '',
  `s_name` varchar(30) DEFAULT NULL,
  `t_id` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`s_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



teacher表

CREATE TABLE `teacher` (
  `t_id` varchar(20) NOT NULL DEFAULT '',
  `t_name` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`t_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



说明 下面查询中出现的student0  student1  student3表结构均与student一样 ,student0  、student2  、student3分别包含有0、1、3条teacherid

表含数据

student3

sql左外连接、右外连接、全外连接_外连接

student1

sql左外连接、右外连接、全外连接_右连接_02


student0

sql左外连接、右外连接、全外连接_外连接_03


teacher

sql左外连接、右外连接、全外连接_表结构_04



表为teacher student3

左连接

SELECT
	s.s_id AS `学生id`,
	s.s_name AS `学生姓名`,
	t.t_id AS `老师id`,
	t.t_name AS `老师姓名`
FROM
	student3 AS s
LEFT JOIN teacher  as t ON s.t_id = t.t_id


sql左外连接、右外连接、全外连接_表结构_05




右连接

SELECT
	s.s_id AS `学生id`,
	s.s_name AS `学生姓名`,
	t.t_id AS `老师id`,
	t.t_name AS `老师姓名`
FROM
	student3 AS s
right JOIN teacher  as t ON s.t_id = t.t_id


sql左外连接、右外连接、全外连接_表结构_06



外连接

SELECT
	s.s_id AS `学生id`,
	s.s_name AS `学生姓名`,
	t.t_id AS `老师id`,
	t.t_name AS `老师姓名`
FROM
	student3 AS s
INNER  JOIN teacher  as t ON s.t_id = t.t_id


sql左外连接、右外连接、全外连接_右连接_07




表为teacher student1

左连接

SELECT
	s.s_id AS `学生id`,
	s.s_name AS `学生姓名`,
	t.t_id AS `老师id`,
	t.t_name AS `老师姓名`
FROM
	student1 AS s
LEFT JOIN teacher  as t ON s.t_id = t.t_id

sql左外连接、右外连接、全外连接_外连接_08


右连接


SELECT
	s.s_id AS `学生id`,
	s.s_name AS `学生姓名`,
	t.t_id AS `老师id`,
	t.t_name AS `老师姓名`
FROM
	student1 AS s
right JOIN teacher  as t ON s.t_id = t.t_id


sql左外连接、右外连接、全外连接_表结构_09



外连接

SELECT
	s.s_id AS `学生id`,
	s.s_name AS `学生姓名`,
	t.t_id AS `老师id`,
	t.t_name AS `老师姓名`
FROM
	student1 AS s
INNER  JOIN teacher  as t ON s.t_id = t.t_id


sql左外连接、右外连接、全外连接_外连接_10




表为teacher student0

左连接



SELECT
	s.s_id AS `学生id`,
	s.s_name AS `学生姓名`,
	t.t_id AS `老师id`,
	t.t_name AS `老师姓名`
FROM
	student0 AS s
LEFT JOIN teacher  as t ON s.t_id = t.t_id


sql左外连接、右外连接、全外连接_表结构_11




右连接

SELECT
	s.s_id AS `学生id`,
	s.s_name AS `学生姓名`,
	t.t_id AS `老师id`,
	t.t_name AS `老师姓名`
FROM
	student0 AS s
right JOIN teacher  as t ON s.t_id = t.t_id


sql左外连接、右外连接、全外连接_右连接_12



外连接

SELECT
	s.s_id AS `学生id`,
	s.s_name AS `学生姓名`,
	t.t_id AS `老师id`,
	t.t_name AS `老师姓名`
FROM
	student0 AS s
INNER  JOIN teacher  as t ON s.t_id = t.t_id


sql左外连接、右外连接、全外连接_右连接_13








标签:JOIN,name,老师,全外,右外,连接,teacher,姓名,id
From: https://blog.51cto.com/u_1481758/7499875

相关文章

  • hbase 连接类
    packagepack;importjava.sql.Connection;importjava.sql.DriverManager;publicclassCon{publicstaticConnectiongetConnection()throwsException{Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");Stringurl=&q......
  • python | 连接数据库
    介绍一些python中用于连接常用数据库的依赖库。SQLite3SQLite3是Python中自带的数据库模块,适用于小型应用和快速原型开发。SQLite是一个进程内的库,实现了自给自足的、无服务器的、是非常小的,是轻量级的、事务性的SQL数据库引擎。它是一个零配置的数据库,不需要在系统中配置......
  • 【php基础】php连接mysql数据库及基本操作02
    一、php连接mysql数据库<?php$servername="localhost";$username="root";$password="root";$dbname="mysql";//创建连接$conn=newmysqli($servername,$username,$password,$dbname);//检测连接i......
  • 1-连接器学习
    连接器标准比较[[国标连接器测试标准#3外观检查]]汽车电子产品的现在有很大一块是面向不同车企的兼容化设计,不管内部如何兼容,具体到外部就需要确定连接接口需求,包括安装位置、结构和电器方面的内容,一个突出的问题就是连接器的选择。汽车连接器及线束是对汽车进行电信号控制的......
  • 无损连接和保持函数依赖
         ......
  • IDEA使用连接JDBC连接带有phoenix加持的hbase数据库
    1、首先要保证自己的phoenix已经下载,且能够正常运行所谓正常运行,即能够正常地使用增删改查的相关操作,而不产生错误,比如不允许啥啥的情况;2、注意phoenix的命令格式(需要保证表中必须有primarykey)增加/修改(在phoenix里面,这两种情况被合并了,若是primarykey已经存在,那么就是修改......
  • 外连接
       ......
  • 内连接
        ......
  • 自然连接转sql语言
          ......
  • Pycharm远程连接到服务器运行错误can‘t open file ‘tmp
    Pycharm远程连接到服务器运行错误can‘topenfile‘/tmp/.../a.py‘:[Errno2]Nosuchfileordirectory问题描述win11Pycharm+Linux服务器,运行代码后显示上述错误。即linux环境中没有xx文件。分析:python默认到/tmp/下去找代码并执行,但x.py文件根本不再tem路径下。即......