MySQL:从具有公共ID的不同表中选择

MySQL:从具有公共ID的不同表中选择,mysql,Mysql,这是我访问你的网站数百次之后的第一篇帖子 简单的问题 我有两个表,独立的,完全不同的,只有一个公共列。 我们称之为ID\u客户机 我不必修改这些表,但我想合并它们,并在此基础上进行Select查询 表A Col_ID |Col 1 |Col 2 |Col 3 | ----------|---------|---------|---------| 40302025 |50 | 60 | 70 | 40302028 |50 |

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

简单的问题

我有两个表,独立的,完全不同的,只有一个公共列。 我们称之为ID\u客户机

我不必修改这些表,但我想合并它们,并在此基础上进行Select查询

表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 | 第1列第2列第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 | 柱ID |柱X |柱Y |柱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 | 第1列|第2列|第3列|第1列|第X列|第Y列|第Z列|第1列|第2列|第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

我不希望查询解决这些示例,但我想了解应该使用什么函数。我试过联合,联合所有人,加入,但也许我不理解使用的光学原理

听起来像是“我想把两个表合并到一个表中,然后我进行SELECT、ORDERBY、WHERE等查询。”

谢谢你,对不起我的英语


Carlo

您应该将这两个表连接起来。大概是这样的:

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
子句


由于这两个表相互关联,因此您应该将它们连接起来

如果要将两个表的列合并到一组列中,可能需要使用
UNION
,我认为情况并非如此。由于您希望显示表A中的所有列和表B中的所有列。

以下是一个示例:

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

希望能有所帮助。

完美!!!伟大的但是如果我想在这些数据上建立一个记录集,我会使用“COLX”或“b.COLX”???例如:MyVar=rs(“b.COLX”)@user2327061-
b.COLX
将选择名称
COLX
而不是
b.COLX
,其他列的名称相同。所以它应该是
MyVar=rs(“colx”)