首页 > 其他分享 >多表链接

多表链接

时间:2023-11-05 16:25:14浏览次数:31  
标签:链接 JOIN name teacher courses teachers 多表 id

二、多表链接

1. 联结

1.1 创建联结

`teachers`.`id` = `courses`.`teacher_id` 

2. 内连接 INNER JOIN

SELECT `table1`.`column1`, `table2`.`column2`...
FROM `table1`
INNER JOIN `table2`
ON `table1`.`common_field` = `table2`.`common_field`;

请编写 SQL 语句,将课程表 courses 和教师表 teachers 进行内连接,查询 “Eastern Heretic” 老师所教的所有课程的课程名和课程编号 , 且结果列名分别以课程编号 id 、课程名称 course_name 和教师姓名 teacher_name 显示。

SELECT c.id,c.name as course_name ,t.name as teacher_name 
FROM courses c
INNER JOIN teachers t
ON c.teacher_id=t.id
WHERE t.name='Eastern Heretic';

3. 外连接 OUTER JOIN

3.1 左外连接 LEFT JOIN
现在学校想要统计所有的在校教师姓名及其所教课程的名称

SELECT c.name AS course_name, t.name AS teacher_name
FROM teachers t
    LEFT JOIN courses c ON c.teacher_id = t.id;

3.2 右外连接 RIGHT JOIN
现在学校想要统计所有的在校教师姓名、教师邮箱及其所教课程的名称

SELECT c.name AS course_name, t.name AS teacher_name,t.email AS teacher_email
FROM courses c
    RIGHT JOIN teachers t ON c.teacher_id = t.id;

3.3 全外连接 FULL (OUTER) JOIN
假如现在正是新学期排课阶段,现在学校想要统计所有的在校教师年龄及其所教课程的名称

SELECT c.name AS course_name, t.age AS teacher_age
FROM courses c
	LEFT JOIN teachers t ON c.teacher_id = t.id
UNION
SELECT c.name AS course_name, t.age AS teacher_age
FROM courses c
	RIGHT JOIN teachers t ON c.teacher_id = t.id;

请编写 SQL 语句,将教师表 teachers 和课程表 courses 进行左连接,查询来自中国(讲师国籍 country ='CN' )的教师名称以及所教课程名称,结果列名请分别以课程名称 course_name ,教师名称 teacher_name 显示。

SELECT c.name AS course_name ,t.name AS teacher_name 
FROM teachers t
LEFT JOIN courses c
ON t.id=c.teacher_id
WHERE t.country ='CN'

请编写 SQL 语句,将课程表 courses 和教师表 teachers 进行全外连接,查询所有课程名称以及与其相互对应的教师名称和教师国籍,结果列名请分别以课程名称 course_name 、教师名称 teacher_name 、教师国籍 teacher_country 显示。

SELECT c.name AS course_name ,t.name AS teacher_name ,t.country AS teacher_country
FROM courses c
LEFT JOIN teachers t ON t.id=c.teacher_id
UNION
SELECT c.name AS course_name ,t.name AS teacher_name ,t.country AS teacher_country
FROM courses c
RIGHT JOIN teachers t ON t.id=c.teacher_id;

3.4 交叉连接

SELECT * FROM Teacher , Course
WHERE Teacher.tid=Course.tid;

速度慢用的少

标签:链接,JOIN,name,teacher,courses,teachers,多表,id
From: https://www.cnblogs.com/3456939606zwp/p/17810623.html

相关文章

  • SQLite 多表关联更新
    SQLite多表关联更新更新多字段UPDATEtab1SETfield1=field1||'-',field2=field2+1WHEREID<10或UPDATEtab1SET(field1,field2)=(field1||'-',field2+1)WHEREID<10关联更新普通方式UPDATEtab1SETfield1=(S......
  • finalshell 链接Ubuntu
    在上一节中已经设置好了虚拟机的地址映射,本节在路径C:\Windows\System32\drivers\etc中找到hosts文件,如红框所示将主机的地址映射添加保存(若无法保存hosts文件,可以使用管理员权限打开记事本再编辑hosts文件。如此就可以编辑保存hosts文件了)下载finalshell,点击红框 填写自己......
  • 苏格拉底问答、实践过程截图、遇到问题解决问题截图,代码链接
    #include<signal.h>#include<stdio.h>#include<sys/time.h>intcount=0;structitimervalt;voidtimer_handler(intsig){printf("timer_handler:signal=%dcount=%d\n",sig,++count);if(count>=8){printf("cancel......
  • LLVM 参考链接
    https://www.llvm.org/LLVMEssentials(Paperback)LLVM编译器https://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15745-s14/public/lectures/https://www.zhihu.com/people/fanqiliang/posts立本书籍https://tatsu-zine.com/books/llvm......
  • mysql数据库管理-FEDERATED存储引擎远程链接MYSQL
    开启FEDERATED存储引擎1.1、查看存储引擎存在的FEDERATED存储引擎就配置文件开启不存在就安装查看showengines;YES支持并开启DEFAULT支持并开启,并且为默认引擎;NO不支持;DISABLED支持,但未开启。创建federated引擎表创建语句最好和原表语句一样,当然去掉id的auto之类的。CREATE......
  • 新手小白怎样把视频号的链接提取出来?
    在我们日常生活和工作中,网络资源的使用已经成为一种常态。其中,视频号的链接提取是许多人在处理一些特定需求时必须要学会的技巧。而关于“怎样把视频号的链接提取出来”的问题,相信大家也有所困惑。下面,我就为大家详细解答这个问题。首先,你需要打开播放该视频号的页面,例如优酷、腾讯......
  • java mysql druid mybatis-plus里使用多表删除出错的一种处理方式
    今天在出来多表删除的时候在mapper.xml用了下面的多个delete语句<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespa......
  • python url 网址链接写函数()括号里不能访问显示403
    说明一则奇怪问题。同一个url网址链接,写到函数里就访问失败,写到变量里就可以正常访问。一、文件名test_url.pydefr_http(url): response=requests.get(url,headers=u_headers) print(f"response.status_code={response.status_code}")二、url直接写到调用的函数中,......
  • thinkPHP链接多个数据库
    1.添加新数据库的database文件 2.在config.php中引入$db_mn=require_once('database_mn.php');'db_mn'=>$db_mn,   3.控制器调用用db()->connect()代替db() ......
  • 小米自研系统MIOS曝光:链接全生态 非安卓套壳
    导读近日消息,既然小米有打算推出自研系统,那么就应该跟安卓没什么太大关联,这个前期肯定会受到外界的质疑。从最新曝光的细节看,小米自研系统将会跟华为鸿蒙差不多,即MIOS将为手机、物联网设备等生态链接能力提供支持,这是一个全生态的系统平台,毕竟他们也会有汽车这样的超级单......