首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

数据库表连接(连接查询)

2024-12-18 来源:化拓教育网

内连接

  1. 等值连接
    依据两个表中相同内容的字段进行连接
    SELECT s.name, g.* FROM student s JOIN grade g ON s.id= g.id;
  1. 非等值连接
    依据两个表中内容相关列(非相同)字段进行连接
    SELECT g.id, g.yuwen, s.level FROM grade g JOIN score_level s ON g.yuwen BETWEEN s.low AND s.high;

  2. 自连接

外连接

  1. 左连接
    保留左表所有数据和共有数据,若右表没有对应值,默认置null
    SELECT s.id, s.name, g.yuwen FROM student s LEFT JOIN grade g ON s.id = g.id;

  2. 右连接
    保留右表所有数据和共有数据,若左表没有对应值,默认置null
    SELECT s.id, s.name, g.yuwen FROM student s RIGHT JOIN grade g ON s.id = g.id;

多表连接

语句顺序

select 
...
from 
a
join 
b
on
...
join 
c
on
...
where
...

例:
SELECT s.name, s.id, g.yuwen, sl.level FROM grade g JOIN student s ON s.id = g.id JOIN score_level sl ON g.yuwen BETWEEN sl.low AND sl.high where g.yuwen > 70;

注意:

  1. 上面表示a表和b连接,然后a表再和c连接,其结果合并在一起。不是a表先连接b,其结果再和c连接
  2. where语句放在最后
显示全文