两个表 主表userinfo 从表postinfo 通过userid关联 一对多的关系
userinfo表
userid username
1 |
jecray |
2 |
yang |
3 |
chen |
4 |
yc |
NULL |
NULL |
postinfo表
PostID| Title |userid|content |order
1 |
title1 |
1 |
content1 |
5 |
2 |
title2 |
2 |
content2 |
4 |
3 |
title3 |
1 |
content3 |
2 |
4 |
title4 |
1 |
content4 |
1 |
5 |
title5 |
3 |
content5 |
5 |
6 |
title6 |
3 |
content6 |
8 |
7 |
title7 |
4 |
content7 |
1 |
8 |
title8 |
2 |
content8 |
2 |
9 |
title9 |
2 |
content9 |
8 |
NULL |
NULL |
NULL |
NULL |
NULL |
要求: 通过一条sql语句得出 每个用户发表post的orderid值最大的记录
如果orderid是时间就是得出每个用户发表最新帖子的相关信息, 该条信息包括两个表中的信息.
期望结果如下
postid title userid content orderid username
1 title1 1 content1 5 jecray
6 title6 3 content6 8 chen
7 title7 4 content7 1 yc
9 title9 2 content9 8 yang
分两步走:
首先通过sql自连接得出postinfo中的每个用户的orderid值最大的记录
<!---->SELECT DISTINCT a.*
FROM postinfo a where a.postid IN
(SELECT TOP 1 postinfo.postid
FROM postinfo
WHERE postinfo.userid = a.userid
ORDER BY orderid DESC)
在每行的检索中匹配指定条件的记录, 如果换成top 2 可以检索头两条orderid最大的记录
然后进行userinfo和postinfo的连接
<!---->SELECT DISTINCT a.*,b.*
FROM postinfo a inner join userinfo b on a.postid IN
(SELECT TOP 1 postinfo.postid
FROM postinfo
WHERE postinfo.userid = a.userid
ORDER BY orderid DESC) and a.userid = b.userid
便可得出上述效果.自连接的效率不知道怎么样, 反正不会很快了.
如果在oracle里面 还可以通过这样的形式实现
<!---->select * from postinfo where (uerid,orderid) in(select userid,max(orderid) as orderid from postinfo group by USERID)
可惜在sqlserver中不能通过
只要涉及到一张表中的同个字段之间或不同字段之间具有逻辑关系 就有可能用到自连接查询
相关推荐
具体编写导出EXCEL数据和建立主从表示例代吗,并建立DATABASE连接数据库
51822主从机通讯时,两模块间连接间隔修改方法~~~~~~~~~
实现了redis主从复制(读写分离)集群
#redis服务地址,连接ip格式,默认第一个为主服务器,后面的为从服务器,若只设置一个,则为主服务器 #示例127.0.0.1:6379,127.0.0.1:6380 redis.ip=127.0.0.1:6379,127.0.0.1:6380 #连接池配置 redis.pool.maxActive=...
电机主从调节两种形式,电机轴硬性连接,电机轴可拆分连接的控制
对SAE主从数据库连接的管理和封装
该代码基于nRF5283蓝牙芯片的主从一体代码,可以通过MCU与其连接实现蓝牙通讯
MySQL高可用系列(一)简单主从复制 MySQL高可用系列(一)——简单主从复制 MySQL主从复制简单背景 一、环境说明 二、数据库安装 1、下载MariaDB10.1.24二进制通用包 2、创建用于运行MySQL服务的用户和用户组、数据...
Mysql主从同步备份策略 五月 18th, 2009 at 17:30 - 3,803 views 环境: 主从服务器上的MySQL...5.另开一个终端,打包主库 cd /usr/local/mysql #mysql库目录 tar zcvf var.tar.gz var ============================
Bluetooth LE 4.0官方协议讲解,连接相关以及主从机
modbus主从站模拟器,可以模拟modbus设备,用于模拟组态软件连接modbus硬件设备。
-> 首先配置master服务器 -> 下载MySQL -> 修改配置文件 启用二进制日志、设置id、添加复制权限用户 -> 配置环境变量 -> 安装服务 -> 配置Slave服务器 -> 连接到master
springboot2.0+mybatis主从数据库双数据源,测试了事务,事务是单独分开的。回滚只回滚主库的事务。
C#开发的MySql主从监控程序,监控同步情况以及连接数。 可以监控多级塔式分发模式。 同步故障支持发送邮件。 VS2010开发,代码完整,可直接编译。
(1)一主一从:一个Master只写,一个Slave只读,Slave实时同步Master (2)一主多从:一个Master只写,多个Slave只读,Slave实时同步Master (3)多主一从:多个个Master只写,一个Slave只读,Slave实时同步Master (4)双...
HC-05 主从机一体蓝牙模块 无线蓝牙串口透传模块 无线模块 (2)等.zip )
无线组网技术
应用对策论中的主从对策理论思想,描述系统防护计划制定者与攻击者在决策时相互制约的关系,并考虑设施容量限制这一现实因素对问题的影响,提出带容限的“防护-中断-再分配”三层主从对策模型. 通过设计“大需求量...
连接主从IP核的片上网络路由器结构.pdf