真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SQLServer中交叉聯(lián)接的使用方法

這篇文章主要介紹“SQL Server中交叉聯(lián)接的使用方法”,在日常操作中,相信很多人在SQL Server中交叉聯(lián)接的使用方法問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”SQL Server中交叉聯(lián)接的使用方法”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

為思南等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及思南網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、思南網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

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。

select * from t1 cross join t2

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

SQL Server中交叉聯(lián)接的使用方法

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

3、交叉查詢的使用場(chǎng)景

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

-- 示例

-- 員工表 CREATE TABLE [dbo].[EmpInfo](   [empId] [int] IDENTITY(1,1) NOT NULL,   [empNo] [varchar](20) NULL,   [empName] [nvarchar](20) NULL,  CONSTRAINT [PK_EmpInfo] PRIMARY KEY CLUSTERED  (   [empId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF , ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]  -- 獎(jiǎng)金表 CREATE TABLE [dbo].[SalaryInfo](   [id] [int] IDENTITY(1,1) NOT NULL,   [empId] [int] NULL,   [salary] [decimal](18, 2) NULL,   [seasons] [varchar](20) NULL,  CONSTRAINT [PK_SalaryInfo] PRIMARY KEY CLUSTERED  (   [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF , ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] -- 季度表 CREATE TABLE [dbo].[Seasons](   [name] [nchar](10) NULL ) ON [PRIMARY]  GO SET IDENTITY_INSERT [dbo].[EmpInfo] ON   INSERT [dbo].[EmpInfo] ([empId], [empNo], [empName]) VALUES (1, N'A001', N'王強(qiáng)') INSERT [dbo].[EmpInfo] ([empId], [empNo], [empName]) VALUES (2, N'A002', N'李明') INSERT [dbo].[EmpInfo] ([empId], [empNo], [empName]) VALUES (3, N'A003', N'張三')  INSERT [dbo].[SalaryInfo] ([id], [empId], [salary], [seasons])  VALUES (1, 1, CAST(3000.00 AS Decimal(18, 2)), N'第一季度') INSERT [dbo].[SalaryInfo] ([id], [empId], [salary], [seasons])  VALUES (2, 3, CAST(5000.00 AS Decimal(18, 2)), N'第一季度') INSERT [dbo].[SalaryInfo] ([id], [empId], [salary], [seasons])  VALUES (3, 1, CAST(3500.00 AS Decimal(18, 2)), N'第二季度') INSERT [dbo].[SalaryInfo] ([id], [empId], [salary], [seasons])  VALUES (4, 3, CAST(3000.00 AS Decimal(18, 2)), N'第二季度 ') INSERT [dbo].[SalaryInfo] ([id], [empId], [salary], [seasons])  VALUES (5, 2, CAST(4500.00 AS Decimal(18, 2)), N'第二季度')  INSERT [dbo].[Seasons] ([name]) VALUES (N'第一季度') INSERT [dbo].[Seasons] ([name]) VALUES (N'第二季度') INSERT [dbo].[Seasons] ([name]) VALUES (N'第三季度') INSERT [dbo].[Seasons] ([name]) VALUES (N'第四季度')  -- 查詢每個(gè)人每個(gè)季度的獎(jiǎng)金情況 如果獎(jiǎng)金不存在則為0 SELECT a.empName,b.name seasons ,isnull(c.salary,0) salary  FROM EmpInfo a  CROSS JOIN Seasons b LEFT OUTER JOIN SalaryInfo c ON a.empId=c.empId AND b.name=c.seasons

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

針對(duì)一些情況可以采用交叉聯(lián)接的方式替代子查詢,通過(guò)減少子查詢?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í)用。

到此,關(guān)于“SQL Server中交叉聯(lián)接的使用方法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!


分享名稱:SQLServer中交叉聯(lián)接的使用方法
網(wǎng)頁(yè)地址:http://weahome.cn/article/ggicos.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部