mysql子查询

子查询:
子查询指一个查询语句嵌套在另一个查询语句内部的查询
创建两张测试表

create table tb1(number1 int not NULL);
create table tb2(number2 int not NULL);

INSERT into tb1 VALUES(1),(2),(13),(56);
INSERT into tb2 VALUES(4),(78),(137),(586);

1.带any,some 关键字的子查询
,any 和some用法相同 表示满足其中任一条件,它们允许创建一个表达式对子查询的返回结果进行比较,只要满足内层子查询中任何一个比较条件,就返回一个结果作为外层查询的条件,

查询tb1的number1大于 tb2 的number2 的任一一个数的集合

select  number1 from tb1 where number1 > any (select number2 from tb2)

结果为
any的查询结果

2.带all关键字的子查询

查询number1大于number2的数

select  number1 from tb1 where number1 > all (select number2 from tb2)

3.带exits关键字的子查询

查询number1 是否有number2 = 4这个值

select * from tb1 where EXISTS(select number2 from tb2 where number2 = 4)

如果有返回所有记录
exits还可以和条件表达式一起使用

select * from tb1 where number1 >4 and EXISTS(select number2 from tb2 where number2 = 56)

not exits 于exits 使用方法相同 ,返回结果相反

4.带in关键字的子查询

查询number1的数 在number2中是否也有

select * from tb1 where number1 in (select number2 from tb2 where number2)

select 语句中可以使用not in 于in 相反

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值