2012-11-29 82 views
2

我有2個表如何連接2個沒有公共列的表?

User Code   SubMenuID 

usercol   menucol 
-----------  ------------- 
AB    Sub-01 
Alam    Sub-02 
CSRL 

我想告訴他們這樣

usercol   menucol 
----------  ------------ 
AB    Sub-01 
AB    Sub-02 
Alam    Sub-01 
Alam    Sub-02 
CSRL    Sub-01 
CSRL    Sub-02 

我怎樣才能得到這個使用SQL查詢?這將是非常有用的:)

回答

6

由於表與外鍵關係無關,因此無法加入它們 - 因此,您希望得到的結果是兩張表中的笛卡爾乘積。這是通過從兩個表中選擇而沒有任何附加的連接條件來實現(這也被稱爲交叉聯接):

mysql> SELECT * FROM userCode, SubMenuId; 

此查詢組合從第一表中的所有行與從第二表中的所有行。

+---------+---------+ 
| usercol | menucol | 
+---------+---------+ 
| AB  | Sub-01 | 
| AB  | Sub-02 | 
| Alam | Sub-01 | 
| Alam | Sub-02 | 
| CSRL | Sub-01 | 
| CSRL | Sub-02 | 
+---------+---------+ 
+0

日Thnx的澄清:) –

+0

什麼交叉連接? –

+1

@DimaDz我在示例**中展示的是**交叉連接。 http://stackoverflow.com/questions/11861417/what-is-the-difference-between-cartesian-product-and-cross-join –

0

試試這個:

SELECT a.usercol, b.menucol FROM UserCode a JOIN SubMenuID b 
0
select * from usercode,submenuid 
order by usercol; 
相關問題