首页 > 数据库 >sql基础之from和ansi join一起使用(parse)总结

sql基础之from和ansi join一起使用(parse)总结

时间:2023-01-22 21:22:07浏览次数:75  
标签:insert join into 001 parse temp1 values sql aid

create table temp1
(
  aid       VARCHAR(5) not null,
  car       VARCHAR(10) not null
); 
 
create table temp2
(
  bid       VARCHAR(5) not null,
  username       VARCHAR(10) not null
);
 
create table temp3
(
  cid        VARCHAR(5) not null,
  dogname       VARCHAR(10) not null
);  
 
insert into temp1(aid,car) values('001','benz');           
insert into temp1(aid,car) values('001','BMW');
insert into temp1(aid,car) values('001','ford');
insert into temp1(aid,car) values('001','jeep');
insert into temp1(aid,car) values('002','jeep');
insert into temp1(aid,car) values('003','hongqi');
 
insert into temp2(bid,username) values('001','mayun');           
 
insert into temp3(cid,dogname) values('001','lily'); 
insert into temp3(cid,dogname) values('001','lucy');
insert into temp3(cid,dogname) values('002','xiaohua');

SQL的逻辑顺序如下:

1. FROM 
  1.1. JOIN 
  1.2. ON 
2. WHERE 
3. GROUP BY 
4. WITH CUBE or WITH ROLLUP 
5. HAVING 
6. SELECT 
7. DISTINCT 
8. ORDER BY 
11. TOP 

在实际中,ANSI JOIN的优先级高于FROM平铺连接的优先级,对于外关联,通常但不绝对会先生成子查询。

示例,

select * from temp2 a2,temp1 a1 left join temp3 a3 on a1.aid=a3.cid where a1.aid=a3.cid;

通过on过滤,left join就近连a1表,之后生成临时表,和a2一起参与where。所以,结果为:

  对于语句,这结果为:

 无论是mysql、oracle还是postgresql,结果是一样的。 

 from 平铺定义在SQL 89中,ANSI JOIN定义在SQL 92中,见iso sql高级特性及定义的版本

标签:insert,join,into,001,parse,temp1,values,sql,aid
From: https://www.cnblogs.com/lightdb/p/17064682.html

相关文章

  • 求助:我需要用Python中parsel模块提取文章的文本内容,有什么办法
    求助:像这样我想提取小说文章内容怎么提取我要用的模块有parsel<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-......
  • MySQL排序与分页详解
    1.排序数据排序规则使用ORDERBY子句排序ASC(ascend):升序DESC(descend):降序ORDERBY子句在SELECT语句的结尾。单列排序SELECTlast_name,job_id,department_id,hire_d......
  • 数据库:了解MySQL数据类型、SQL命令
    文章目录​​Python进阶篇-系列文章全篇​​​​1.【了解】数据库概念及作用​​​​2.【了解】数据库分类及特点​​​​3.【了解】数据库管理系统​​​​4.【了解】MySQ......
  • 从零开始学SQL:where条件查询与连接
    文章目录​​Python进阶篇-系列文章全篇​​​​1.练习强化​​​​2.where之比较运算​​​​3.where之逻辑运算​​​​4.where之模糊查询​​​​5.where之范围查......
  • HTML5 WEB SQL 无法创建数据表的问题
    不知是什么原因,反复试,最后发现是数据表的某一列的字段用的是'check',把它改了后,就一切顺利了:无法创建数据表:db.transaction(function (tx) {       ......
  • MySQL单行函数详解
    ⭐本专栏针对MySQL中的范式、日志、SQL性能分析工具、存储引擎、优化场景、锁的应用、各种创建索引的规则等各方面进行剖析。......
  • Longhorn+K8S+KubeSphere云端数据管理,实战 Sentry PostgreSQL 数据卷增量快照/备份与
    云端实验环境配置VKEK8SClusterVultr托管集群https://vultr.com/3个worker节点,kubectlgetnodes。k8s-paas-71a68ebbc45bReady<none>12d......
  • SQL 算术函数
    1.前言解释:SQL内置的算术函数主要用于对数值类型的字段进行算数运算。本小节,我们将一起学习SQL函数中的算术函数。有时候,我们需要对数据表中的数值字段进行算术运算,......
  • sql base nodejs py go操作基本的db
    constmysql=require('mysql2');constconnection=mysql.createConnection({host:'localhost',user:'root',password:'root',database:'mybatis_pl......
  • MYSQL分页查询时没有用ORDER BY出现数据重复的问题
    背景产品反馈,用户在使用分页列表时,出现数据重复的问题,查看代码后发现对应的分页SQL并没有使用orderby进行排序,但是印象中Mysql的InnoDB引擎会默认按照主键id进行排序,本地......