这是我数百次访问您网站后的第一篇帖子。
简单的问题。
我有两个表,独立,总共不同,只有一个共同的列。 我们称之为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等。”
谢谢,对不起我的英文
卡罗
答案 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
希望有所帮助。