2013-10-24 50 views
1

我已經有了一個結果集,但是我對其他查詢有相同的結果感興趣。他們之間有什麼更好或更快?CROSS JOIN替代方案

insert into [dbo].[Teams] values(1,'First') 
insert into [dbo].[Teams] values(2,'Second') 
insert into [dbo].[Teams] values(3,'Third') 
insert into [dbo].[Teams] values(4,'Fourth') 
insert into [dbo].[Teams] values(5,'Fifth') 

CREATE TABLE [dbo].[Team_team] (
[id1] [int] NOT NULL, 
[id2] [int] NOT NULL 
) ON [PRIMARY] 
GO 

select * from teams; 

select t1.id,t2.id from teams t2 cross join teams t1 
+1

您可以選擇任何其他連接類型'LEFT','INNER','RIGHT'並且使連接謂詞ON1 = 1。雖然不會提高性能。 –

+0

您顯示'Team_team'的模式,但您的SQL正在查詢'團隊'。 – mbeckish

+0

'CROSS JOIN'是表示有意笛卡爾產品的最佳方式......其他任何東西都會看起來像是一場意外。 –

回答

0

這是與其他語法相同:

select t1.id,t2.id from teams t1, teams t2 

不會有性能差異。

+1

這回答了這個問題,但是應該強烈建議不要這樣的句法說明。 –