sql 语句笔记

简介:
问题描述:
dic_flow   (id,status_id,status_name)
post_status(id,pre_status_id,post_status_id)
关系: dic_flow.status_id-(1.1)>post_status.pre_status_id,post_status_id
要结果: pre_status_id,pre_status_name,post_status_id,post_status_name
create table  dic_flow(id int,status_id int , status_name varchar(20));
create table  post_status(id int ,pre_status_id int ,post_status_id int);
insert into dic_flow values(1,1,'google');
insert into dic_flow values(2,3,'baidu');
insert into dic_flow values(3,8,'yahoo');
insert into post_status values(1,8,3);
select
    tp.pre_status_id 
as  pre_status_id,
    ( 
select  td.status_name  from  dic_flow  td  where  td.status_id = tp.pre_status_id)  as  pre_status_name ,
    tp.post_status_id 
as  post_status_id,
    ( 
select  td.status_name  from  dic_flow  td  where  td.status_id = tp.post_status_id)  as  post_status_name
from  post_status tp;
+---------------+-----------------+----------------+------------------+
| pre_status_id | pre_status_name | post_status_id | post_status_name |
+---------------+-----------------+----------------+------------------+
|             8 | yahoo           |              3 | baidu            |
+---------------+-----------------+----------------+------------------+
1 row in set (0.00 sec)
Skynet(309290723) 21:11:57
子查询(性能优化版)
select
  tp.pre_status_id 
as  pre_status_id,
  td1.status_name 
as  pre_status_name ,
  tp.post_status_id 
as  post_status_id,
  td2.status_name 
as  post_status_name
from  post_status tp , dic_flow td1 , dic_flow td2
where  tp.pre_status_id = td1.status_id  and  tp.post_status_id = td2.status_id ;
Skynet(309290723) 21:12:08
+---------------+-----------------+----------------+------------------+
| pre_status_id | pre_status_name | post_status_id | post_status_name |
+---------------+-----------------+----------------+------------------+
|             8 | yahoo           |              3 | baidu            |
+---------------+-----------------+----------------+------------------+
Skynet(309290723) 21:16:35
再唠叨句 
左连(性能再优化版)
select
  tp.pre_status_id 
as  pre_status_id,
  td1.status_name 
as  pre_status_name ,
  tp.post_status_id 
as  post_status_id,
  td2.status_name 
as  post_status_name
from  post_status tp
 
left   join  dic_flow td1  on  tp.pre_status_id = td1.status_id
 
left   join  dic_flow td2  on  tp.post_status_id = td2.status_id  ;
本文转自博客园刘凯毅的博客,原文链接:sql 语句笔记,如需转载请自行联系原博主。



目录
相关文章
|
7月前
|
SQL 关系型数据库 MySQL
《SQL必知必会》个人笔记(一)
《SQL必知必会》个人笔记(一)
70 0
|
7月前
|
SQL 关系型数据库 MySQL
【MySQL实战笔记】02.一条SQL更新语句是如何执行的-1
【4月更文挑战第4天】SQL更新语句执行涉及查询和日志模块,主要为`redo log`和`binlog`。`redo log`先写日志再写磁盘,保证`crash-safe`;`binlog`记录逻辑日志,支持所有引擎,且追加写入。执行过程分为执行器查找数据、更新内存和`redo log`(prepare状态)、写入`binlog`、提交事务(`redo log`转commit)。两阶段提交确保日志逻辑一致,支持数据库恢复至任意时间点。
58 0
|
18天前
|
SQL 存储 关系型数据库
SQL自学笔记(3):SQL里的DCL,DQL都代表什么?
本文介绍了SQL的基础语言类型(DDL、DML、DCL、DQL),并详细说明了如何创建用户和表格,最后推荐了几款适合初学者的免费SQL实践平台。
78 3
SQL自学笔记(3):SQL里的DCL,DQL都代表什么?
|
18天前
|
SQL 数据挖掘 数据库
SQL自学笔记(2):如何用SQL做简单的检索
本文深入介绍了SQL的基本语法,包括数据查询、过滤、排序、分组及表连接等操作,并通过实际案例展示了SQL在用户研究中的应用,如用户行为分析、用户细分、用户留存分析及满意度调查数据分析。
28 0
SQL自学笔记(2):如何用SQL做简单的检索
|
18天前
|
SQL 数据挖掘 关系型数据库
SQL自学笔记(1):什么是SQL?有什么用?
本文为用户研究新手介绍SQL(结构化查询语言),解释了SQL的基本概念、入门方法及在用户研究中的应用通过实际案例说明,如用户行为分析、用户细分和满意度调查数据分析,展示了SQL在用户研究中的重要作用。
42 0
SQL自学笔记(1):什么是SQL?有什么用?
|
6月前
|
SQL 存储 关系型数据库
技术笔记:MYSQL常用基本SQL语句总结
技术笔记:MYSQL常用基本SQL语句总结
41 0
|
7月前
|
SQL 关系型数据库 MySQL
【MySQL系列笔记】常用SQL
常用SQL分为三种类型,分别为DDL,DML和DQL;这三种类型的SQL语句分别用于管理数据库结构、操作数据、以及查询数据,是数据库操作中最常用的语句类型。 在后面学习的多表联查中,SQL是分析业务后业务后能否实现的基础,以及后面如何书写动态SQL,以及完成级联查询的关键。
255 6
|
7月前
|
SQL 存储 关系型数据库
【MySQL系列笔记】SQL优化
SQL优化是通过调整数据库查询、索引、表结构和配置参数等方式,提高SQL查询性能和效率的过程。它旨在减少查询执行时间、减少系统资源消耗,从而提升数据库系统整体性能。优化方法包括索引优化、查询重写、表分区、适当选择和调整数据库引擎等。
295 3
|
6月前
|
SQL Oracle 关系型数据库
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
80 0
|
7月前
|
SQL 存储 Oracle
《SQL必知必会》个人笔记
《SQL必知必会》个人笔记
48 1

热门文章

最新文章