SELECT 1, 2 INNER JOIN SELECT 3, 4 ;
我希望得到的結果與(1,2)的每個組合(3,4)兩個SELECT語句之間執行笛卡爾乘積之間笛卡兒積,像:
1 3
2 3
1 4
2 4
SELECT 1, 2 INNER JOIN SELECT 3, 4 ;
我希望得到的結果與(1,2)的每個組合(3,4)兩個SELECT語句之間執行笛卡爾乘積之間笛卡兒積,像:
1 3
2 3
1 4
2 4
可以使用CROSS JOIN子句
SELECT MyTable1.Col1, MyTable2.Col2
FROM MyTable1
CROSS JOIN MyTable2
MYTABLE1地方有兩行續艾寧1和2;和MyTable2具有包含3兩行和4
select v1, v2
from
(select 1 as v1 union
select 2) t1,
(select 3 as v2 union
select 4) t2
或更簡單:
select *
from
(select 1 union
select 2) t1,
(select 3 union
select 4) t2
如果您有任何JOIN ON
子句指定表或等式/ conditionins的WHERE
子句中你會得到您正在尋找的catesian產品。
SELECT table1.field1, table2.field2
FROM table1, table2
會給你你要的東西。顯示它更明確地......
SELECT * FROM table1;
+--------+
| field1 |
+--------+
| 1 |
| 2 |
+--------+
SELECT * FROM table2;
+--------+
| field2 |
+--------+
| 3 |
| 4 |
+--------+
SELECT table1.field1, table2.field2 FROM table1, table2;
+--------+--------+
| field1 | field2 |
+--------+--------+
| 1 | 3 |
| 2 | 3 |
| 1 | 4 |
| 2 | 4 |
+--------+--------+
隨着使用此您的格式如你說不是 A(1,2) and B(3,4)
那麼交叉連接將這樣進行的:
SELECT Table1.Col1, Table2.Col2
FROM Table1
CROSS JOIN Table2
(A*B)= (1,3),(1,4),(2,3),(2,4)
交叉連接==內連接[MySQL 5.0](http://dev.mysql.com/doc/refman/5.0/en/join.html) – bobobobo 2010-12-19 04:03:02
更多交叉連接== inner join = =加入 – 2014-10-26 09:28:40
在MySQL中,JOIN,CROSS JOIN和INNER JOIN是語法等價物,它們不相同。 INNER JOIN和(逗號)在沒有連接條件的情況下在語義上是等價的:兩者都在指定的表之間生成笛卡爾積(即,第一個表中的每一行都連接到第二行中的每一行表)。 所以加入==內部連接但不是真正的交叉連接==內部連接 – mokNathal 2016-08-22 08:57:19