首页 > 数据库技术 > 详细

mysql 03

时间:2021-08-03 18:50:48      阅读:11      评论:0      收藏:0      [点我收藏+]

多表查询:通过cust_id 在customers和orders表中查询信息

SELECT cust_id,COUNT(cust_id),(SELECT cust_name from customers where customers.cust_id = orders.cust_id)
from orders
GROUP BY cust_id

 

技术分享图片

 

inner join(查询多个表的交集,共有的内容)

多个表查询的时候

主要语法

inner join 表 on -----表之间的关系语句

-- INNER JOIN 表 ON +有关联部分 -------- 两个表关系

 

select * from teacher(第一个表名)

INNER JOIN course(第二个表名)

ON teacher.id = course.teacher_id  ------两个表之间有关联部分

 

 

SELECT name,course_name FROM teacher

INNER JOIN course

ON teacher.id = course.teacher_id

 

 

-- 三个表之间关联

SELECT name,course_name FROM student(第一个表名)

INNER JOIN student_course(第二个表名)

ON student.id = student_course.student_id(如果两个表中有多个条件是关联的,后面+and连接另外的关联条件)

INNER JOIN course(第三个表名)

ON course.id = student_course.course_id

 

 

左连接

left join +表名 on +相同部分

以左表为主,左表的数据都会显示。想以哪个表为左表,就放在第一行命令的from后,左表信息全部显示,其他表如果没有内容的话就显示为null

SELECT vendors.vend_id,vend_name,prod_name from vendors -- 左表

LEFT JOIN products

ON products.vend_id = vendors.vend_id

多个表左连接也是一样,在第三个表前面再加left join

Union

-- union 在连接两个表的时候如果数据有相同,会自动去重,但是如果用union all 连接,就不会去重

SELECT age FROM student

UNION

SELECT age from teacher;

 

mysql 03

原文:https://www.cnblogs.com/huxiaoguang1991/p/15095247.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!