找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
多表查询方法(重点)

    a                                      c

id 姓名                           s_id 成绩

查找张三的成绩

1、多表的条件:必须要关联的表中有相同的字段

2、有哪些方法可以把表和表进行关联:内链接 左右链接 基本链接 union链接

基本链接:

select * from aa,cc where id=s_sid;报错就用下面的 三表就加and s_id=c_id;

select * from aa,cc where aa.id=cc.s_sid;

查询出来的结果只会显示两个表中有的值,

两两为真为真

一真一假,一假一真,两两为假为假;

左连接方法:左表的表为主表,右表为子表


left join 表明 on

select * aa left join cc on id=s_id;

aa是主表 cc是子表 aselect * from aa,cc where id=s_id;a表中有:2个字段 cc中只有1

如果主表的值是大于子表的值,子表缺失的值自动补齐null

如果主表的值是小于子表的值,只取和主表相同的值其他不显示

右连接方法;right join 表名 on  右边的表为主表 左表为子表 与左表相反


内链接: 和基本链接一模一样

inner join 表名 on

union链接:表和表连起来形成一列 同时显示

select * from aa union select * from cc;


临时表;

select * from aa,cc where id=s_id;

select * from (select * from aa,cc where id=s_id)a;取别名为a

select * from (select * from aa,cc where id=s_id)a where a.name='zhangsan';

嵌套:

select * from aa where name='zhangsan';张三的所有信息

select id from aa where name='zhangsan';

select * from cc;

select * from cc where s_id in(select id from aa where name='zhangsan');       

select score from cc where s_id in(select id from aa where name='zhangsan');


分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册