今天又遇到一个比较复杂的sql:
有用户表users,用户资料表user_details,还有一个用户收货地址表user_address,通常一个用户会将他的常用发货地址保存在user_address表中,方便以后的使用。
关键的表结构
users
id,true_name,scores
user_details
user_id, address,qq,email
user_address
id,address,created_at
users和user_details是一对一,users和user_address是一对多
现在我要查出
用户号,用户姓名,用户最近的一次发货地址(在这里使用最新创建的作为最近使用的),用户的通信地址(可能用户还没有设置收货地址,所以也取出客户资料中填写的联系地址),并且积分scores大于300000
即要显示的列如下:
users表中的id,users表中的true_name,user_address表中的最新的发货地址address,user_details表中的address。
答案是什么呢?
select u.id,u.true_name,uad.address,ud.address from users u
join user_details ud on ud.user_id = u.id
left join
(
select * from user_addresses where id in ( select max(id) from user_addresses group by user_id )
)
uad on uad.user_id=u.id
where u.scores>=300000;
分享到:
相关推荐
标题“合并多个sql文件”所指的就是这样一个任务,即把分散的SQL脚本整合到一起,形成一个综合的SQL文件。 描述中提到的工具支持“utf-8”格式,这意味着它能够处理包含多种语言或特殊字符的数据库内容。UTF-8是一...
sql去掉最后一个字符,sql去掉最后一个字符
SQL 基础 SQL 首页 SQL 简介 SQL 语法 SQL select SQL distinct SQL where SQL AND & OR SQL Order By SQL insert SQL update SQL delete SQL 高级 SQL Top SQL Like SQL 通配符 SQL In SQL Between ...
SQLServer 中将一个字段的多个记录值合并到一行显示的实现方法 SQL Server 是一种关系型数据库管理系统,具有强大的数据处理能力和存储能力。在实际应用中,我们经常需要将一个字段的多个记录值合并到一行显示,以...
市场上存在许多这样的工具,如SSMA(SQL Server Migration Assistant) for Oracle,这是一个官方提供的迁移工具,能自动分析SQL Server的架构,并生成适合Oracle的DDL(Data Definition Language)和DML(Data ...
本话题将详细讲解一个简单的SQL循环语句脚本及其相关知识。 一、SQL循环语句概述 SQL循环语句主要包括WHILE循环和FOR循环,它们允许我们在满足特定条件时重复执行一段代码块。在PL/SQL和T-SQL中,还有BEGIN-END...
SQL Prompt是Redgate Software开发的一款高效SQL代码编辑工具,它为SQL Server的开发人员提供了智能提示、格式化、重构和代码分析等功能,极大地提升了编写和维护SQL代码的效率。SQL Prompt 9是该系列的最新版本,...
1. **将脚本放到同一目录**:将所有需要执行的SQL脚本文件放在同一个目录下,例如文中提到的例子是`D:\sqls`。 2. **创建并编辑PDC文件**:在上述目录下创建一个PDC(Procedure Definition File)文件,例如`batch....
osql 是 SQL Server 提供的一个命令行工具,用于执行 SQL 语句和运行 SQL 脚本文件。osql 工具可以在命令行下执行 SQL 语句,非常适合批量执行 SQL 任务。 如何使用 osql 导入超大 SQL 脚本文件? 在 SQL Server ...
SQL Prompt 是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索,智能的为用户提供唯一合适的代码选择。自动脚本设置为用户提供了简单的代码...
总的来说,SQL优化是一个系统性的工作,需要结合硬件配置、数据库设计、SQL编写等多个方面进行综合考虑。而借助专业的SQL优化工具,这个过程可以变得更加高效和精确,从而确保数据库系统的稳定和高效运行。
在SQL Server环境中,有时我们需要将一个数据库中的某个表复制到另一个数据库中,这可能是为了备份、数据迁移或创建测试环境等目的。根据提供的标题、描述和部分代码内容,我们可以整理出一套较为完整的操作流程和...
商城sql商城sql商城sql商城sql商城sql商城sql商城sql商城sql
接下来,我们再看一个更复杂的例子,即如何将一个SQL Server实例中的数据插入到另一个SQL Server实例的表中。假设需要将192.168.1.2的SQL Server实例(数据库名为TT)中表test2的数据插入到192.168.1.1的SQL Server...
sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包sql安装包...
总之,SqlParser C++实现的SQL语法解释器是一个强大的工具,它通过词法分析和语法分析解析SQL语句,为数据库操作提供了基础。理解和掌握SqlParser的工作原理,对于开发和维护与数据库相关的软件系统具有重要意义。
是一个课件,主要讲了如何使用VB+SQL作一个信息管理系统
2. SQLPrompt10.1.0.13908.exe - 这是Sql Prompt的一个特定版本,版本号为10.1.0.13908,用户可以通过这个文件进行安装。版本号通常代表软件的更新迭代,可能包含了性能改进、新特性和修复的错误。 3. SQL.Prompt....
昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 ...
VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL...