【发布时间】:2018-02-24 16:23:07
【问题描述】:
我有 3 张桌子:
一般:
all_id |
000001
000002
000003
000004
000005
客户:
client_id | client_nmbr
000002 | 22222222
000003 | 33333333
公司:
company_id | company_nmbr
000001 | 11111111
000004 | 44444444
000005 | 55555555
我需要加入 3 个按 all_id 排序的表,并且只有一列包含 client_nmbr + company_nmbr,如下所示:
all_id | all_nmbr
000001 | 11111111
000002 | 22222222
000003 | 33333333
000004 | 44444444
000005 | 55555555
我尝试将 UNION 与表 Clients 和 Company 一起使用,以获得带有 client_nmbr + company_nmbr 的单列。它有效,但我不知道如何将它与 SELECT 一起使用,以按 all_id 对列进行排序,因为它在另一个表中。
这是我目前得到的:
SELECT client_nmbr as all_nmbr
FROM Clients
UNION ALL
SELECT company_nmbr
FROM Company
结果是:
all_nmbr|
22222222
33333333
11111111
44444444
55555555
我需要用 all_id 列加入该结果并按 all_id 排序所有内容
是否可以只用一个 SELECT 查询来做到这一点?有什么建议吗?
提前致谢
【问题讨论】:
-
您写的 "只有一列包含 client_nmbr + company_nmbr",但随后显示的输出包含两列。输出应该是什么样子?
-
如果每个 id 都出现在两个表(clients 和 company)中的一个中,为什么需要加入 FIRST 表?也许 FIRST 表还有其他包含附加信息的列?那么 - 第一个表中是否有在“客户”或“公司”中找不到的 ID - 如果是这样,你需要左连接吗?
-
@trincot 实际上我需要一个带有 all_id 的列和另一个带有 client_nmbr+company_nmbr 的列以及由 all_id 排序的这两列
-
@mathguy 就是这样。 General 表有更多信息,我也需要获取这些信息,但由于 clients_nmbr 和 company_nmbr 有问题,我认为这不太重要。 all_id 包含 company 和 client 中的每个 id。