美文网首页
sql多表查询

sql多表查询

作者: Jason_lai | 来源:发表于2018-04-13 17:34 被阅读0次

普通多表查询

//查询两张表的所有数据
select * from 表名1,表名2 where 表名1.字段名 = 表名2.字段名;
//查询指定字段的数据
select 表名1.字段名,表名2.字段名  from 表名1,表名2 where 表名1.字段名 = 表名2.字段名;

嵌套多表查询

select * from 表名 where 字段名 in(select 字段或者函数 from 表名);
//例如
select name from user where id in(select max(id) from user);

链接多表查询

  • 左链接(会将左表的内容全部输出,没有需要补NULL)
select * from 表名1 left join 表名2 on 表名1.字段名 = 表名2.字段名;
select * from 表名1 as a left join 表名2  as b on a.字段名 = a.字段名;
//例如
select class.name if(count(user.id),count(user.id),'无') from class left join user on class.id=user.class_id group by class.id;
  • 右链接(会将右表的内容全部输出,没有需要补NULL)
select * from 表名1 right join 表名2 on 表名1.字段名 = 表名2.字段名;
select * from 表名1 as a right join 表名2  as b on a.字段名 = a.字段名;
//例如
select class.name if(count(user.id),count(user.id),'无') from user left join class on class.id=user.class_id group by class.id;
  • 内链接(完全等价于普通多表查询,必须符合条件的多个表的数据才会显示)
select class.name count(user.id) from class left join user on class.id=user.class_id group by class.id;

having的使用方法

//使用class_id为分组聚合条件之后,使用having再class_id作为条件筛选一次
select class_id from user group by class_id having class_id<2;

问题:将所有班的总人数统计出来,前提是有些班没有人

select class.name if(count(user.id),count(user.id),'无') from class inner join user on class.id=user.class_id group by class.id;

问题:用户表,里面有很多用户,有一列是成绩,请统计这张表中及格人数和不及格人数

select sum(if(score>=60,1,0)) jige ,sum(if(score<60,1,0)) bujige from user;

相关文章

  • SQL多表查询高级应用

    SQL多表查询 多表连接示范 两张表t_user t_judge 给两张表设置外键约束查询内容 SQL多表查询 多...

  • SQLAlchemy(四)

    知识要点: 1.多表查询 2.原生SQL的查询 多表查询 在MySQL中我们讲了多表查询,在SQLAlchemy中...

  • 不可置信!SQL 优化终于干掉了“distinct”

    sql 优化之多表联合查询干掉 “distinct” 去重关键字 所以需要把多表的子查询的 sql 结构进行优化。...

  • sql

    sql语句 查询 简单查询 例: 多表连接查询 例: 2.更新

  • sql多表查询

    普通多表查询 嵌套多表查询 链接多表查询 左链接(会将左表的内容全部输出,没有需要补NULL) 右链接(会将右表的...

  • SQL多表查询

    之前做过一个关于数据库的使用总结,里面写过一些关于数据库的常用方法的集合,但是我们在实例工作中,很可能涉及到一需要...

  • sql多表查询

    在面试中经常有这样的问题,从两个表A和B中获取有特定关系的数据.碰到这样的问题我们一般需要用到union和join...

  • sql多表查询

    sql会创建多表以及多表的关系 需求: 上篇文章中的商品表和分类表之间存在着所属关系,在数据库如何表示这种关系 分...

  • SQL基础(二)

    前言 基础SQL入门详情看SQL(一)多表联接的原理详细看SQL(一) 查询 在SQL中, 最难的莫过于查询.因为...

  • MySQL的多表关联查询

    一、多表关联查询 多表关联查询是使用一条SQL语句,将关联的多张表的数据查询出来。 1.1 交叉查询 交叉查询就是...

网友评论

      本文标题:sql多表查询

      本文链接:https://www.haomeiwen.com/subject/rjgckftx.html