mysql查询数量最多的前十

发布时间: 2023-11-21 11:46 阅读: 文章来源:1MUMB2179PS

很想学习下mysql数据库的知识,毕竟现在用的很多开源CMS都是用的mysql数据库,比如本站使用的wordpress,在这些CMS使用过程中避免不了的会用到一些MySql知识,因此博主最近收集整理了一些Mysql的知识点。以备后面的不时之需。

MySQL多表查询大全,18个示例总有你需要的

一共18个示例,我想总应该有你需要的吧。

一.使用select 子句进行多表查询

select a.id,a.name,a.address,a.date,b.math,b.english,b.chinese FROM tb_demo065_tel AS b,tb_demo065 AS a WHERE a.id=b.id

在上面的代码中,以两张彪的id字段信息相同为条件建立两表关联,但在实际开发中不应该这样使用,最好用主外键约束来实现。

二.使用表的别名进行多表查询

select a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065 a,tb_demo065_tel b WHERE a.id=b.id AND b.id=‘$_POST[textid]‘

SQL语言中,可以通过两种方式为表指定别名

第一种是通过关键词as指定,如:

select a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065 AS a,tb_demo065_tel AS b WHERE a.id=b.id

第二种是在表名后直接加表的别名实现

select a.id,a.name,a.address,b.math,b.english,b.chinese FROM tb_demo065 a,tb_demo065_tel b WHERE a.id=b.id

使用表的别名应注意几下几点

1.别名通常是一个缩短了的表名,用于在连接中引用表中的特定列,如果连接中的多个表中有相同的名称列存在,必须用表名或表的别名限定列名2.如果定义了表的别名就不能再使用表名

三.合并多个结果集

SQL语言中,可以通过union或all将多个select语句的查询结果合并输出,这两个关键词的使用说明如下:

union:利用该关键词可以将多个select语句的查询结果合并输出,并删除重复行。

all:利用该关键词可以将多个select语句的查询结果合并输出,但不会删除重复行。

在使用union和all关键字将多个表合并输出时,查询结果必须具有相同的结构并且数据类型必须兼容,另外使用union时香樟表的字段数量必须相同,否则SQL语句有错误。

e.x:select id,name,pwd FROM tb_demo067unionselect uid,price,date FROM tb_demo067_tel

四.简单的嵌套查询

子查询:子查询是一个select查询,返回单个值且嵌套在select、insert、update和delete语句或其他查询语句中,任何可以使用表达式的地方都可以使用子查询。

select id,name,sex,date FROM tb_demo068 WHERE id in(select id FROM tb_demo068 WHERE id=‘$_POST[test]‘)

内连接:把查询结果作为where子句的查询条件即称为内连接

五.复杂的嵌套查询

多表之间的嵌套查询可以通过谓词in实现,语法格式如下:

test_expression[NOT] in{subquery}

参数说明:test_expression指sql表达式,subquery包含某结果集的子查询

多表嵌套查询的原理:无论是多少张彪进行嵌套,表与表之间一定存在魔种关联,通过where子句建立此种关联实现查询

六.嵌套查询在查询统计中的应用

实现多表查询时,可以同时使用谓词any,some,all,这些谓词被称为定量比较谓词,可以和比较运算符联合使用,判断是否全部返回值都满足搜索条件,some和any谓词是存在量的,只注重是否有返回值满足搜索条件, 这两个谓词的含义相同,可以替换使用;

all谓词称为通用谓词,它只关心是否有谓词满足搜索条件。

select * FROM tb_demo069_people WHERE uid IN(select deptID FROM tb_demo069_dept WHERE deptName=‘$_POST[select]‘)select a.id,a.name FROM tb_demo067 AS a WHERE idANY 大于子查询中的某个值 //>=ANY 大于等于子查询中的某个值 //ALL 大于子查询中的所有值 //>=ALL 大于等于子查询中的所有值 // ‘95‘

更多建站赚钱教程,可以点击下面的”了解更多“进行查看

•••展开全文
相关文章