多表查询:通过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;