2016-10-04 71 views
-1

我發現了以下查詢,並感謝它,如果有人可以幫我解釋一下這是什麼意思。從Table1中選擇,表2

select * from table1, table2 
+2

爲什麼不直接運行它來查看它的功能?它通過使用「交叉連接」來創建'笛卡爾產品'... – sgeddes

+0

謝謝@sgeddes,現在我明白了。我的愚蠢道歉。 –

回答

5

這被稱爲CROSS JOIN,但在FROM條款,舊語法。

它生成一個笛卡爾乘積,所以結果集中的行數將是從(假設在WHERE子句中沒有約束)的table1乘以行數。它將來自table1的每一行與來自table2的行有效配對。

下面查詢是一個等效但確實顯JOIN操作從連接存儲跨越獨立的表中的相關數據的邏輯分離數據檢索的約束邏輯:

SELECT * 
FROM table1 
CROSS JOIN table2 
+1

感謝您的解釋。 –

1

您將從table1中的所有行乘以table2中的所有行,並將根據這兩個表的列顯示。正如@sgeddes指出的那樣,創造一個笛卡兒的產品。

0

表1(Col1中,Col2中)與4條記錄

表2(Col11,Col22,Col33)與3條

當您使用下面給出的查詢時,會產生N×M的行數(笛卡爾加入)

select * from table1, table2 

兩個表格的結果和列順序將在下面給出,4 x 3 = 12條記錄。 Col1,Col2,Col11,Col22,Col33