成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server中交叉聯(lián)接的用法介紹

數(shù)據(jù)庫 SQL Server
今天給大家介紹SQLServer中交叉聯(lián)接的用法,希望對(duì)大家能有所幫助!

[[394544]]

今天給大家介紹SQLServer中交叉聯(lián)接的用法,希望對(duì)大家能有所幫助!

1、交叉聯(lián)接(cross join)的概念

交叉聯(lián)接是聯(lián)接查詢的第一個(gè)階段,它對(duì)兩個(gè)數(shù)據(jù)表進(jìn)行笛卡爾積。即第一張數(shù)據(jù)表每一行與第二張表的所有行進(jìn)行聯(lián)接,生成結(jié)果集的大小等于T1*T2。

  1. select * from t1 cross join t2 

2、交叉聯(lián)接的語法格式

  1. select * from t1 cross join t2;--常用寫法 
  2. select * from t1, t2;-- SQL:1989的規(guī)范 
  3. select * from t1 cross join t2 
  4. where t1.col1=t2.col2;--等價(jià)于內(nèi)部聯(lián)接 
  5. select * from t1 inner join t2  on t1.col1=t2.col2 

3、交叉查詢的使用場景

3.1 交叉聯(lián)接可以查詢?nèi)繑?shù)據(jù)

-- 示例

  1. -- 員工表 
  2. CREATE TABLE [dbo].[EmpInfo]( 
  3.   [empId] [int] IDENTITY(1,1) NOT NULL
  4.   [empNo] [varchar](20) NULL
  5.   [empName] [nvarchar](20) NULL
  6.  CONSTRAINT [PK_EmpInfo] PRIMARY KEY CLUSTERED  
  7.   [empId] ASC 
  8. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF 
  9. , ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ONON [PRIMARY
  10. ON [PRIMARY
  11.  
  12. -- 獎(jiǎng)金表 
  13. CREATE TABLE [dbo].[SalaryInfo]( 
  14.   [id] [int] IDENTITY(1,1) NOT NULL
  15.   [empId] [intNULL
  16.   [salary] [decimal](18, 2) NULL
  17.   [seasons] [varchar](20) NULL
  18.  CONSTRAINT [PK_SalaryInfo] PRIMARY KEY CLUSTERED  
  19.   [id] ASC 
  20. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF 
  21. , ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ONON [PRIMARY
  22. ON [PRIMARY
  23. -- 季度表 
  24. CREATE TABLE [dbo].[Seasons]( 
  25.   [name] [nchar](10) NULL 
  26. ON [PRIMARY
  27.  
  28. GO 
  29. SET IDENTITY_INSERT [dbo].[EmpInfo] ON  
  30.  
  31. INSERT [dbo].[EmpInfo] ([empId], [empNo], [empName]) VALUES (1, N'A001', N'王強(qiáng)'
  32. INSERT [dbo].[EmpInfo] ([empId], [empNo], [empName]) VALUES (2, N'A002', N'李明'
  33. INSERT [dbo].[EmpInfo] ([empId], [empNo], [empName]) VALUES (3, N'A003', N'張三'
  34.  
  35. INSERT [dbo].[SalaryInfo] ([id], [empId], [salary], [seasons]) 
  36.  VALUES (1, 1, CAST(3000.00 AS Decimal(18, 2)), N'第一季度'
  37. INSERT [dbo].[SalaryInfo] ([id], [empId], [salary], [seasons]) 
  38.  VALUES (2, 3, CAST(5000.00 AS Decimal(18, 2)), N'第一季度'
  39. INSERT [dbo].[SalaryInfo] ([id], [empId], [salary], [seasons]) 
  40.  VALUES (3, 1, CAST(3500.00 AS Decimal(18, 2)), N'第二季度'
  41. INSERT [dbo].[SalaryInfo] ([id], [empId], [salary], [seasons]) 
  42.  VALUES (4, 3, CAST(3000.00 AS Decimal(18, 2)), N'第二季度 '
  43. INSERT [dbo].[SalaryInfo] ([id], [empId], [salary], [seasons]) 
  44.  VALUES (5, 2, CAST(4500.00 AS Decimal(18, 2)), N'第二季度'
  45.  
  46. INSERT [dbo].[Seasons] ([name]) VALUES (N'第一季度'
  47. INSERT [dbo].[Seasons] ([name]) VALUES (N'第二季度'
  48. INSERT [dbo].[Seasons] ([name]) VALUES (N'第三季度'
  49. INSERT [dbo].[Seasons] ([name]) VALUES (N'第四季度'
  50.  
  51. -- 查詢每個(gè)人每個(gè)季度的獎(jiǎng)金情況 如果獎(jiǎng)金不存在則為0 
  52. SELECT a.empName,b.name seasons ,isnull(c.salary,0) salary  
  53. FROM EmpInfo a  
  54. CROSS JOIN Seasons b 
  55. LEFT OUTER JOIN SalaryInfo c ON a.empId=c.empId AND b.name=c.seasons 

3.2 交叉聯(lián)接優(yōu)化查詢性能

針對(duì)一些情況可以采用交叉聯(lián)接的方式替代子查詢,通過減少子查詢?cè)斐傻亩啻伪頀呙瑁瑥亩梢蕴岣邇?yōu)化查詢的性能。

4、總結(jié)

交叉聯(lián)接雖然支持使用WHERE子句篩選行,由于笛卡兒積占用的資源可能會(huì)很多,如果不是真正需要笛卡兒積的情況下,則應(yīng)當(dāng)避免地使用CROSS JOIN。建議使用INNER JOIN代替,效率會(huì)更高一些。如果需要為所有的可能性都返回?cái)?shù)據(jù)聯(lián)接查詢可能會(huì)非常實(shí)用。

 

責(zé)任編輯:姜華 來源: IT技術(shù)分享社區(qū)
相關(guān)推薦

2021-10-13 06:49:13

SQL Server優(yōu)化

2010-07-13 16:48:14

SQL Server

2021-04-18 07:58:22

SQL Server數(shù)據(jù)庫Apply

2011-03-28 10:17:39

sql server

2010-11-12 10:53:41

sql server表

2010-11-11 11:13:54

SQL Server

2010-09-16 13:42:55

SQL SERVER索

2010-07-21 14:04:12

SQL Server引

2010-09-27 10:59:23

SQL SERVER事

2010-11-08 10:57:05

SQL Server的

2010-06-28 11:06:04

SQL Server

2010-07-09 14:51:21

SQL Server

2010-11-10 14:06:44

SQL Server全

2010-04-29 09:45:16

Oracle外聯(lián)接

2009-08-06 16:44:06

2010-07-23 18:33:57

SQL Server游

2010-07-05 10:37:00

2010-07-13 09:29:46

SQL Server

2010-09-08 15:42:46

SQL指令UNION

2010-09-10 15:04:41

SQLDATENAME函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美一级黄色片在线观看 | 精品欧美久久 | 日韩成人在线网址 | 亚洲精品久久久久久久久久久久久 | 中文字幕一区在线观看视频 | 久久精品一区 | 中文字幕福利视频 | 亚洲精品9999 | 亚洲一区在线日韩在线深爱 | 久久亚洲国产精品 | 丁香六月伊人 | 国产亚洲日本精品 | 亚洲在线久久 | 一本久久a久久精品亚洲 | 国产福利视频网站 | 久久久噜噜噜www成人网 | 欧美国产91 | 国产精品久久久久9999鸭 | 亚洲精品久久久久久国产精华液 | www.亚洲.com | 国产福利91精品一区二区三区 | 日本中文字幕在线观看 | 欧美视频 | 欧美色图综合网 | 欧美日韩在线免费观看 | 剑来高清在线观看 | 美女一级黄 | 日韩欧美视频网站 | 免费的av | 孰女乱色一区二区三区 | 鸡毛片 | 99热国产免费| 国产成人99久久亚洲综合精品 | 日韩在线三级 | 欧美国产亚洲一区二区 | 中文字幕在线一 | 超碰97免费在线 | 日本一二三区高清 | 亚洲一区二区综合 | 欧美日韩不卡在线 | 羞羞视频在线观看免费观看 |