MySQL:从具有公共ID的不同表中进行SELECT

时间:2013-04-28 08:16:09

标签: mysql

这是我数百次访问您网站后的第一篇帖子。

简单的问题。

我有两个表,独立,总共不同,只有一个共同的列。 我们称之为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     |

我必须查询(如“Order”,“Limit”等),以便第一个表依赖于第二个表,反之亦然。

示例:我想基于表B的X列对表A的第2列进行排序,其中ID> 40302030

示例2:我想选择表A的第3列和表X的第B列,其中ID> 40302030

我不希望查询解决这些示例,但我想了解我应该使用哪个函数。我试过UNION,UNION ALL,JOIN但也许我不明白使用光学。

听起来像“我想将两个表合并为一个然后我进行查询,如SELECT,ORDER BY,WHERE等。”

谢谢,对不起我的英文

卡罗

2 个答案:

答案 0 :(得分:8)

你应该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中的所有列。

答案 1 :(得分: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

希望有所帮助。