SQL联接 外联接 内联接 完全联接 交叉联接

联接分为:

内联接????????????????????????[inner join]

外联接????????(左外联接,右外联接)????????[left join/left outer join, right join/right outer join]

完全联接????????????????????[full join]

交叉联接????????????????????[cross join]

a表???? id????ebcid????name????????b表 ????uid????ebcid

????1????1????aa????????????1????1

????2????2????bb????????????1????2

????3????3????cc????????????1????3

????4????4????dd????????????2????2

????5????5????ee????????????2????3

内联接

select a.*, b.* from a inner join b on a.ebcid = b.ebcid

结果:

1????1????aa????1????1

2????2????bb????1????2

3????3????cc????1????3

2????2????bb????2????2

3????3????cc????2????3

?

左外联接

select a.*, b.* from a left join b on a.ebcid = b.ebcid

1????1????aa????1????1

2????2????bb????1????2

2????2????bb????2????2

3????3????cc????1????3

3????3????cc????2????3

4????4????dd

5????5????ee

?

右外联接(以右表为主,例子不够典型~~囧)

select a.*, b.* from a right join b on a.ebcid = b.ebcid

1????1????aa????1????1

2????2????bb????1????2

3????3????cc????1????3

2????2????bb????2????2

3????3????cc????2????3

?

完全联接

左右都是全的

交叉联接 (笛卡尔积)

时间: 2024-10-26 07:27:00

SQL联接 外联接 内联接 完全联接 交叉联接的相关文章

mysql 内联接、左联接、右联接、完全联接、交叉联接 区别

测试表SQL语句 create table a ( id int unsigned not null primary key auto_increment, name char(50) not null default '' )engine=myisam default charset=utf8; create table b ( id int unsigned not null primary key auto_increment, name char(50) not null default

联接——外联接

与内联接和交叉联接不同,外联接是在ANSI SQL-92 中才被引入的,因此它只有一种标准语法--在表名之间指定JOIN关键字,在ON子句中指定联接条件.外联接会应用内联接所应用的两个逻辑处理步骤(笛卡尔积和ON过滤),此外还多加一个外联接特有的第三步:添加外部行. 在外联接中,要把一个表标记为"保留的"表,可以在表名之羊使用关键字LEFT OUTER JOIN.RIGHT OUTER JOIN.以及FULL OUTER JOIN,其中 OUTER 关键字是可选的.LEFT关键字表示左

联接-----交叉联接

在逻辑上,交叉联接是一种最简单的联接.交叉联接只实现一个逻辑查询步骤(笛卡尔积).这一步是对输入的两个表进行操作,把它们联接起来,生成二者的笛卡尔积.也就是将一个输入表的每行与另一个表的所有行进行匹配.如果一个表有m行,而另一个表有n行,将得到m*n行的结果集. SQL Server 支持交叉联接的两种标准语法: ANSI SQL-92 SELECT C.custid,E.empid FROM dbo.Customers AS C CROSS JOIN dbo.Employees AS E AN

SQL Server 2008 R2——内连接 左连接 右连接 全连接 交叉连接

SELECT * FROM Table_A GO SELECT * FROM Table_B GO --内连接 SELECT a.*, b.* FROM Table_A a JOIN Table_B b ON a.ID = b.ID SELECT a.*, b.* FROM Table_A a INNER JOIN Table_B b ON a.ID = b.ID GO --内连接等价直接多表from的形式 SELECT a.*, b.* FROM Table_A a INNER JOIN Ta

sql查询一天内的where写法,sql写法

sql查询一天内的写法: 1. where createtime BETWEEN (select date_format(now(),'%Y-%m-%d 00:00:00')) and (select date_format(now(),'%Y-%m-%d 23:59:59')) 2. SELECT TO_DAYS(now());SELECT TO_DAYS('2016-07-02 20:50:06'); ========================================附录===

oracle sql查询表外键关系

SELECT F.TABLE_NAME, F.CONSTRAINT_NAME, F.COLUMN_NAME, F.POSITION, P.TABLE_NAME, P.COLUMN_NAME, P.POSITION ,R.OWNER FROM USER_CONSTRAINTS R, USER_CONS_COLUMNS F, USER_CONS_COLUMNS P WHERE 1=1 and R.OWNER = UPPER('ATS001') AND R.TABLE_NAME = UPPER('AC

实现通过'net 映射sql server 读取局域网内其他服务器文件

实现环境 应用程序服务器:IIS6.0+windows Server2003 数据库服务器:Sql 2005+windows Server2003 研究原因 以前数据库服务器和web服务器在同一台服务器上,先在特殊原因把数据库服务器和Web服务器放在了不同的位置上,为了实现sql server数据库中数据快速导出,尝试了很多方法,但是当数据量太大以后,导出的速度就特别慢.最终在老大的帮助下,解决了这一问题,就是通过创建文件夹共享和盘符映射. 文件共享 开启guest账号:右击我的电脑\管理\用户

SQL联合查询(内联、左联、右联、全联)语法

SQL联合查询(内联.左联.右联.全联)语法 概述: 联合查询效率较高,举例子来说明联合查询:内联inner join .左联left outer join .右联right outer join  .全联full outer join 的好处及用法. 联合查询效率较高,以下例子来说明联合查询(内联.左联.右联.全联)的好处: T1表结构            (用户名,密码) userid(int) username            varchar(20) password       

思辨“从外至内的认识和表达”——By Me at 20140928

                                                          从下面几个维度,来思辨"从外至内的认识和表达" [思考维度1]提到研发前期的架构工作,一定要基于这样一个假设:那就是假设产业链上下游等是支持的情况来进行架构设计,但是考虑由于条件和前提无法满足,可以在前期架构设计的基础上进行有策略性的开发.以期日后满足扩展和总体把握. [理解和认识]对于目前团队的产品资料开发工作,体会最为真切的是前期的不断思辨与建模分析过程,虽然该工作在