欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL查询(关联查询)

程序员文章站 2022-10-08 20:12:06
一、mysql查询与权限 (一)数据库关联查询 **内连接查询(inner join)** 查询两个表共有的数据,交集 所有有宿舍的学员 左表查询(左关联查询)(left join)查询两个表共有的数据,和左表所有的数据,左表有右表没有的部分用null代替 所有学员的住宿情况 右表查询(右关联查询) ......

一、mysql查询与权限

(一)数据库关联查询

**内连接查询(inner join)**

查询两个表共有的数据,交集

MySQL查询(关联查询)

select * from tb1 inner join tb2 on 条件

 

所有有宿舍的学员

MySQL查询(关联查询)

 

左表查询(左关联查询)(left join)

查询两个表共有的数据,和左表所有的数据,左表有右表没有的部分用null代替

MySQL查询(关联查询)

 

select * from tb1 left join tb2 on 条件

 所有学员的住宿情况

 MySQL查询(关联查询)

 

右表查询(右关联查询)(right join)

查询两个表共有的数据,和右表表所有的数据,右表有左表没有的部分用null代替
MySQL查询(关联查询)

select * from tb1 right join tb2 on 条件

 

 

所有宿舍的学员情况

MySQL查询(关联查询)


没有学员的宿舍
MySQL查询(关联查询)


没有宿舍的学员
MySQL查询(关联查询)

 

 

(二)多表(三表)关联查询

1、内关联查询
查看所有php的课程

MySQL查询(关联查询)

 

MySQL查询(关联查询)

 

MySQL查询(关联查询)

 

select * from major inner join major_course inner join course where 
major.id = major_course.major_id and major_course.course_id = course.id 
and major.id= 1;

 

 

MySQL查询(关联查询)

 

规范写法:

select
m.id as m_id,
m.name as m_name,
c.id as c_id,
c.name as c_name
from
major as m
inner join major_course as mc
inner join course as c
where
m.id = mc.major_id
and mc.course_id = c.id;

 



2、关联子查询
查询所有含有计算机基础的专业

select
name
from
major
where
id in (
select
mc.major_id
from
course as c
left join major_course as mc on c.id = mc.course_id
where
c.id = 1
);

 

MySQL查询(关联查询)