- 浏览: 600781 次
- 性别:
- 来自: 卡哇伊
文章分类
- 全部博客 (299)
- C# (25)
- Java (1)
- WinForm (0)
- Asp.Net (86)
- Jsp (2)
- Php (1)
- Web Service (0)
- Desgin Patterns (19)
- Data Structure & Algorithms (1)
- SQLserver (41)
- Mysql (0)
- Oracle (2)
- Javascript (50)
- Ajax (10)
- Jquery (1)
- Flex (0)
- Regular Expression (5)
- DIV+CSS+XHTML+XML (18)
- Software Test (0)
- Linux (0)
- Utility (17)
- Net Digest (4)
- windows 2003 (10)
- Other (4)
- English (1)
- IT Term (1)
最新评论
-
w497480098h:
学习了 很好谢谢
SQL Server下无限多级别分类查询解决办法(简单查询树形结构数据库表) -
main_fun:
确实不错
iframe自适应高度 -
jveqi:
...
DBA -
mxcie:
其它版本没有确认,今天使用vs2003时,其.sln文件也需要 ...
彻底删除项目的VSS源代码管理信息 -
moneyprosper:
就只有IE支持,火狐和谷歌都不支持此种方法。正在寻找中。。。
从父页面读取和操作iframe中内容方法
最近公司在招人,同事问了几个自认为数据库可以的应聘者关于库连接的问题,回答不尽理想~
现在在这写写关于它们的作用
假设有如下表:
一个为投票主表,一个为投票者信息表~记录投票人IP及对应投票类型,左右连接实际说是我们联合查询的结果以哪个表为准~
1:如右接连 right join 或 right outer join:
我们以右边voter表为准,则左表(voteMaster)中的记录只有当其ID在右边(voter)中存在时才会显示出来,如上图,左边中ID为3.4.5.6因为这些ID右表中没有相应记录,所以没有显示!
2:因此我们自然能理解左连接 left join 或者 left outer join
可见,现在右边中ID在中存在时才会显示,当右边中没有相应数据时则用NULL代替! 5:交叉连接(完全连接)cross join 不带 where 条件的 等价select vm.id,vm.voteTitle,vt.ip from voteMaster as vm,voter as vt 这是一个部门表,里面存放了部门及其上级部门,但都放在同一张表中,我们假设现在需要用SQL查询出各部门及其上级部门!就如何做,
3:全连接 full join 或者 full outer join,为二个表中的数据都出来,这里演示效果与上一样!
4:内连接 inner join 或者 join;它为返回字段ID同时存在于表voteMaster 和 voter中的记录
没有 WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(table1和table2交叉连接产生6*3=18条记录)
6:自连接。在这里我用我前段时间一个电力项目中的例子(改造过)
如下表:
当然,不用自连接也一样,可以如下:
我们达到预期目的!在这个查询中使用了一个子查询完成对上级部门名的查询,如果使用自连接,那么结构上感觉会清晰很多。
是不是也同样完成了功能呢,这里除了使用自连接外,还使用了左连接,因为省电力没有上级部门,他是老大,如果使用内连接,就会把这条记录过滤掉,因为没有和他匹配的上级部门。
自连接用的比较多的就是对树形结构的查询!类似上表!
SQL>select * from a;
编号 姓名
---- ----------
1000 张三
2000 李四
3000 王五
SQL>select * from b;
编号 商品
---- ----------
1000 电视机
2000 录像机
4000 自行车
SQL>set null 空值--这里为了显示方面我把NULL定义成了[空值]----->该设置针对oracle
SQL>select a.*,b.* from a inner join b on a.编号=b.编号;
编号 姓名 编号 商品
---- ---------- ---- ----------
1000 张三 1000 电视机
2000 李四 2000 录像机
SQL>select a.*,b.* from a left join b on a.编号=b.编号;
编号 姓名 编号 商品
---- ---------- ---- ----------
1000 张三 1000 电视机
2000 李四 2000 录像机
3000 王五 空值 空值
SQL>select a.*,b.* from a right join b on a.编号=b.编号;
编号 姓名 编号 商品
---- ---------- ---- ----------
1000 张三 1000 电视机
2000 李四 2000 录像机
空值 空值 4000 自行车
SQL>select a.*,b.* from a full join b on a.编号=b.编号;
编号 姓名 编号 商品
---- ---------- ---- ----------
1000 张三 1000 电视机
2000 李四 2000 录像机
3000 王五 空值 空值
空值 空值 4000 自行车
---
以上,希望对你有所帮助。
SQL FULL JOIN 关键字
SQL FULL JOIN 关键字
只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
FULL JOIN 关键字语法
SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name
注释:在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。
原始的表 (用在例子中的):
"Persons" 表:
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
"Orders" 表:
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 1 |
4 | 24562 | 1 |
5 | 34764 | 65 |
全连接(FULL JOIN)实例
现在,我们希望列出所有的人,以及他们的定单,以及所有的定单,以及定购它们的人。
您可以使用下面的 SELECT 语句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons FULL JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName
结果集:
Adams | John | 22456 |
Adams | John | 24562 |
Carter | Thomas | 77895 |
Carter | Thomas | 44678 |
Bush | George | |
34764 |
FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行。如果 "Persons" 中的行在表 "Orders" 中没有匹配,或者如果 "Orders" 中的行在表 "Persons" 中没有匹配,这些行同样会列出。
发表评论
-
给定一个日期,确认是本月的第几周
2010-06-02 17:10 1116select * from workplan where ... -
SQL Server 2005 中的架构与用户
2009-10-29 13:33 1487从 SQL Server 2005 开始,每个对象都属于 ... -
查询时间段数据问题
2009-10-25 23:01 1324问题: select * from dbo.Tab_Arti ... -
sql 查询当天,本月,本周的记录
2009-10-25 22:00 5422--查询当天: select * from info ... -
MSSql基本语句
2009-10-22 22:23 1126下列语句部分是Mssql语句,不可以在access中使用(这是 ... -
有重复数据时只显示一条记录
2009-10-12 10:26 1380if not object_id('tempdb..#T') ... -
sql中CASE两种用法
2009-10-09 19:14 868方法一: select (case TitleOfCo ... -
根据路线分类查找该分类下热门(点击量高的)路线信息的两种方式
2009-09-02 17:49 767--根据路线分类查找该分类下热门(点击量高的)路线信 ... -
NVARCHAR 和VARCHAR区别和使用
2009-08-21 20:37 22151、各自的定义: ... -
SQL Order By
2009-08-19 17:40 1914到目前为止,我们已学到如何藉由 SELECT 及 WHERE这 ... -
异常:此数据库没有有效所有者,因此无法安装数据库关系图支持对象。 (SQL2000转到2005)
2009-08-17 19:50 2926某一天,在调试程序时 ... -
Sql Server 常用日期格式
2009-08-15 21:16 931进来因为开发原因,经常需要使用日期方面的比较和操作,整理了一下 ... -
SQL优化34条
2009-08-12 12:10 697我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为 ... -
论坛或相册上一条、下一条查询方式
2009-08-04 10:26 917--上一条 select top 1 * from tabl ... -
SQL分组查询做相关统计
2009-08-01 11:26 1590根据项目名称分组得到相关数据统计 select row ... -
查询置顶,热门,推荐,最新的20条记录
2009-07-31 08:37 928表结构: --查询置顶:news_IsTop,热门 ... -
SQL Server下无限多级别分类查询解决办法(简单查询树形结构数据库表)
2009-07-30 23:56 3052在开发中经常会遇到无限级分类的问题,最常见的是一些无限级目录之 ... -
一条语句简单解决“每个Y的最新X”的SQL经典问题
2009-07-30 23:51 971“每个Y的最新X”是一个经典的SQL问题,工作中经常碰到。当然 ... -
数据库优化
2009-07-30 18:27 6871.对查询进行优化,应尽量避免全表扫描,首先应考虑在 wher ... -
MSSQL按照日期来搜索记录的问题(按日期模糊查询)
2009-07-30 16:21 3502假设文本框日历控件选择的是2008-09-01日,从c#到数据 ...
相关推荐
SQL 连接 JOIN 例解左连接,右连接,全连接,内连接,交叉连接,自连接
SQL连接JOIN例解左连接右连接全连接内连接交叉连接自连接
SQL连接JOIN例解 (左连接,右连接,全连接,内连接,交叉连接,自连接)pdf
外连接: 全连接(full join)、左连接(left join)、右连接(right join)。 交叉联接(cross join)。 外连接与内连接不一样,外连接返回的查询结果中不仅包含符合条件的行,还包括左表(左外连接),右表(右外连接)...
外联接(左、右)得到一个表的所有行,及其余表满 足连接条件的行 full | left | right outer join on 交叉联接 在这类联接的结果集内,两个表中每两个可能成对的行占一行。 但是如果在交叉联接中加入...
SQL语法大全 SQL语法大全 1. ASP与Access数据库连接: dim conn,mdbfile mdbfile=server.mappath("数据库名称.mdb") set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access ...
用数据实例解说SQL内连接/外连接/全连接/交叉连接的运用与区别--表O的内容:select O.orderid 001 U01 item001 002 U02 item002 007 U07 item007 --表U的内容:select U.userID U01 张三 U02 李四 U03 周五 --外连接1:...
9.4 外连接 9.4.1 左外连接 9.4.2 右外连接 9.4.3 全外连接 9.4.4 在外连接中使用聚合函数 9.5 交叉连接 9.5.l 交叉连接的定义 9.5.2 交叉连接举例 9.6 多表连接的综合应用 9.6.1 内连接与左外连接的综合应用 ...
11.1.5 使用INNER JOIN连接查询 223 11.1.6 连接查询实例 224 11.2 高级连接查询 226 11.2.1 自连接查询 226 11.2.2 内连接查询 227 11.2.3 左外连接查询 229 11.2.4 右外连接 230 11.2.5 全外连接 230 11.2.6 交叉...
SQL中表全连接 full join SQL中变量 SQL中的事务 创建存储过程 存储过程带输出参数 调用存储过程 触发器定义 触发器类型: 触发器触发条件: 什么是索引 索引类型 什么是填充因子 什么是临时表 什么是局部临时表 什么...
7.2 内连接(INNER JOIN) 7.3 不等值连接 7.4 交叉连接 7.5 自连接 7.6 外部连接 7.6.1 左外部连接 7.6.2 右外部连接 7.6.3 全外部连接 第8章 子查询 8.1 子查询入门 8.1.1 单值子查询 8.1.2...
7.2 内连接(INNER JOIN) 7.3 不等值连接 7.4 交叉连接 7.5 自连接 7.6 外部连接 7.6.1 左外部连接 7.6.2 右外部连接 7.6.3 全外部连接 第8章 子查询 8.1 子查询入门 8.1.1 单值子查询 8.1.2...
9.3.5 交叉连接(CROSS JOIN) 9.4 UNION与UNION JOIN 9.4.1 关系的集合运算 9.4.2 UNION运算符 9.4.3 ORDER BY子句排序UNION运算结果 9.4.4 对多表进行UNION运算 9.4.5 UNION JOIN 连接表 9.5 ...
7.2 内连接(INNER JOIN) 7.3 不等值连接 7.4 交叉连接 7.5 自连接 7.6 外部连接 7.6.1 左外部连接 7.6.2 右外部连接 7.6.3 全外部连接 第8章 子查询 8.1 子查询入门 8.1.1 单值子查询 8.1.2...
7.2 内连接(INNER JOIN) 7.3 不等值连接 7.4 交叉连接 7.5 自连接 7.6 外部连接 7.6.1 左外部连接 7.6.2 右外部连接 7.6.3 全外部连接 第8章 子查询 8.1 子查询入门 8.1.1 单值子查询 8.1.2...
7.2 内连接(INNER JOIN) 7.3 不等值连接 7.4 交叉连接 7.5 自连接 7.6 外部连接 7.6.1 左外部连接 7.6.2 右外部连接 7.6.3 全外部连接 第8章 子查询 8.1 子查询入门 8.1.1 单值子查询 8.1.2...
数据查询语言 (Data Query Language, DQL) 是SQL语言中,负责进行数据查询而不会对数据本身进行修改的语句,这是最基本的SQL语句。例如:SELECT(查询) 数据控制语言Data Controlling Language(DCL),用来...
以上两个SQL中dy_dj(电压等级)及xh_bz(销户标志)两个字段都没进行索引,所以执行的时候都是全表扫描,第一条SQL的dy_dj = '1KV以下'条件在记录集内比率为99%,而xh_bz=1的比率只为0.5%,在进行第一条SQL的...