关于sql

本文介绍了几种实用的SQL查询技巧,包括子查询、联表查询、数据插入等操作,并对比了union与union all的区别,还提供了如何标识最早数据的案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、两个不相关的表,可以建立子查询关系:SELECT user_id,allow_search,allow_tel_search,(SELECT soft_id FROM soft_update LIMIT 0,1)  FROM user_info WHERE user_id=6

2、也可以通过关联查询:SELECT a.user_id,a.allow_search,a.allow_tel_search,b.soft_id,b.VERSION,b.link FROM
(SELECT user_id,allow_search,allow_tel_search FROM user_info WHERE user_id=6 )a,
(SELECT soft_id,VERSION,link FROM soft_update LIMIT 0,1) b 

3、数据插入:

一条sql将其它表中的数据插入新表中

INSERT INTO person2 (person_id,NAME,create_date) SELECT person_id,NAME,create_date FROM person a WHERE a.person_id IN (4,5,6)

4、union 与union all 的区别:union是消除合并表中的重复数据,union all 合并表中的重复数据依旧存在

5、将表中最早的数据标识出来(最早的数据用1 表示,其余的用0 表示)

前提:建一个人员表加一些数据,将注册最早的用户加用1 标识,其余用0 表示

SELECT a.person_id,a.name,a.create_date,
CASE WHEN (SELECT COUNT(1) FROM  person b WHERE b.create_date<a.create_date)>0 THEN 0 ELSE 1 END AS is_first
 FROM person a ORDER BY a.create_date ASC

注意:子查询的条件必须与整体查询条件一致,这样才能查出符合的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值