mySql多列连接与重合数据

时间:2012-07-10 19:34:35

标签: php mysql join left-join

我有三张桌子。每个都有三列。它看起来像这样:

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的信息与每个相应的表相关联,并重新排序两个连接表并输出单个表/数组。

让我知道这是非常愚蠢还是复杂......我一直在试图解决这个问题但是我的知识非常有限。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

当然有可能。只要表中有相同的数据,就可以链接它们并一起显示数据。

例如:

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

会输出你问题中的表格。我没有在示例中使用col2作为条件,因为不需要将数据链接在一起。

答案 2 :(得分:0)

这是一个简单的双连接的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