簡體   English   中英

MySQL多列聯接與重合數據

[英]mySql multi-column join with coincident data

我有三張桌子。 每個都有三列。 看起來像這樣:

table 1                   table 2                    table 3
--------------------      --------------------       --------------------
col1    col2    colA      col1    col2    colB       col1    col2    colC
1       A       data      3       C       data       5       E       data
2       B       data      2       B       data       6       F       data
3       C       data      1       A       data       3       C       data
4       D       data      4       D       data       2       B       data
5       E       data      6       F       data       1       A       data
6       F       data      5       E       data       3       C       data

我的問題是,JOINS是否完全有可能輸出如下內容:

output table                
-----------------------------------------
col1    col2    colA       colB      colC
1       A       data       data      data
2       B       data       data      data
3       C       data       data      data
4       D       data       data      data
5       E       data       data      data
6       F       data       data      data

請注意,Col1和Col2在不同列中始終具有相同的值,但順序不同。

我什至不知道這是否可行,但理想情況下,查詢將聯接三個表,並將col1和col2的信息與每個表相關聯,並對兩個聯接表重新排序並輸出單個表/數組。

讓我知道這是真的還是愚蠢的...我一直在努力解決這個問題,但是mySql的知識非常有限。

SELECT *
FROM t1
LEFT JOIN t2 USING (col1, col2)
LEFT JOIN t3 USING (col1, col2)

當然可以。 只要表中的數據相同,就可以鏈接它們並一起顯示數據。

例如:

SELECT table1.*, colB, colC FROM table1, table2, table3
WHERE table1.col1 = table2.col1 AND table2.col1 = table3.col1
ORDER BY table1.col1 ASC;

將輸出您問題中的表格。 在示例中,我沒有使用col2作為條件,因為不需要將數據鏈接在一起。

這是用於簡單雙連接的SQL。 如果您需要澄清我誤解的任何內容,可以調整。

SELECT 
  table1.col1, 
  table1.col2, 
  colA, 
  colB, 
  colC
FROM table1 
JOIN table2 
  ON table1.col1 = table1.col1 
  AND table1.col2 = table2.col2
JOIN table3 
  ON table1.col1 = table3.col1 
  AND table1.col2 = table3.col2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM