2013-04-28 91 views
3

這是我訪問過您的網站數百次後的第一篇文章。MySQL:從具有公共ID的不同表中選擇

簡單的問題。

我有兩個表,獨立,所有不同,只有一個共同的列。 我們稱之爲ID_Client

我不必修改這些表格,但我想合併它們並在此選擇查詢。

表A

 
Col_ID |Col 1 |Col 2 |Col 3 | 
----------|---------|---------|---------| 
40302025 |50  | 60  | 70  | 
40302028 |50  | 60  | 70  | 
40302030 |50  | 60  | 70  | 
40302055 |50  | 60  | 70  | 
40302074 |50  | 60  | 70  | 

表B

 
Col_ID |Col X |Col Y |Col Z | 
----------|---------|---------|---------| 
40302025 |ABC  | CDE | 7ASE | 
40302028 |ABC  | CDE | 7ASE | 
40302030 |ABC  | CDE | 7ASE | 
40302055 |ABC  | CDE | 7ASE | 
40302074 |ABC  | CDE | 7ASE | 

結果見表

 
Col_ID |Col X |Col Y |Col Z |Col 1 |Col 2 |Col 3 | 
----------|---------|---------|---------|---------|---------|---------| 
40302055 |ABC  | CDE | 7ASE |50  | 60  | 70  | 
40302074 |ABC  | CDE | 7ASE |50  | 60  | 70  | 

我要查詢(如 「訂單」, 「限價」 等),以便第一個表依賴於第二個表,反之亦然。

實施例:我想表A的第2列,基於表B的X列,其中ID> 40302030

實施例2進行排序:我想選擇表的表A中的第3列和B列X其中ID> 40302030

我不希望查詢解決這些示例,但我想了解應該使用哪個函數。我試過UNION,UNION ALL,JOIN,但也許我不明白使用的光學。

這聽起來像「我想合併兩個表在一個,然後我讓查詢像SELECT,ORDER BY,WHERE等」

謝謝,對不起,我的英語

卡羅

回答

7

你應該JOIN兩個表。事情是這樣的:

SELECT 
    a.col_ID, 
    b.colx, 
    b.coly, 
    b.colz, 
    a.col1, 
    a.col2, 
    a.col3 
FROM tableA AS a 
INNER JOIN tableB AS b ON a.col_ID = b.col_ID 
WHERE a.col_ID > 40302030; 

看到它在這裏的行動:

結果:

| COL_ID | COLX | COLY | COLZ | COL1 | COL2 | COL3 | 
------------------------------------------------------ 
| 40302055 | ABC | CDE | 7ASE | 50 | 60 | 70 | 
| 40302074 | ABC | CDE | 7ASE | 50 | 60 | 70 | 

對於排序添加ORDER BY條款。


既然兩張表互相關聯,那麼你應該是JOIN他們。

如果您想將兩個表中的列合併到一組列中,您可能需要使用UNION,我認爲情況並非如此。既然你想顯示tablea中的所有列和tableb中的所有列。

+0

完美!大!!!但是......如果我想在這些單個數據上創建一個記錄集,我使用「COLX」或「b.COLX」?例如:MyVar = rs(「b.COLX」) – 2013-04-28 08:51:32

+0

@ user2327061 - 將選擇「b.colx」,其名稱爲「colx」而不是「b.colx」,其他列也是如此。所以它應該是'MyVar = rs(「colx」)'。 – 2013-04-28 09:55:30

+0

非常感謝。 Carlo – 2013-04-28 12:54:19

2

下面是一個例子:

SELECT 
    a.col_ID, b.colx,b.coly,b.colz,a.col1,a.col2,a.col3 
FROM 
    tableA a, tableB b 
WHERE 
    a.col_ID = b.colID 
ORDER BY 
    b.colx ASC 

希望它能幫助。

相關問題