MS Access SQL从表1选择原始连接表2选择匹配

MS Access SQL从表1选择原始连接表2选择匹配,sql,ms-access,Sql,Ms Access,我在表Master中有一个来自银行的交易列表,每个交易都有一个唯一的masterID。然后,用户将这些交易分为日记账分录,这些分录存储在表Master\u split中。Master\u Split表有一个名为import\u Master\u ID的外键字段,它将两个表连接在一起 我正在尝试创建一个查询来选择主记录记录,以及相同格式的分割记录 最初我使用了右连接,因为只需要拆分条目。然而,现在需求已经改变,我不确定我应该研究什么技术/关键词。您可以在第三个表中看到所需的输出 任何指导,甚至为我

我在表
Master
中有一个来自银行的交易列表,每个交易都有一个唯一的
masterID
。然后,用户将这些交易分为日记账分录,这些分录存储在表
Master\u split
中。
Master\u Split
表有一个名为
import\u Master\u ID
的外键字段,它将两个表连接在一起

我正在尝试创建一个查询来选择
主记录
记录,以及相同格式的分割记录

最初我使用了右连接,因为只需要拆分条目。然而,现在需求已经改变,我不确定我应该研究什么技术/关键词。您可以在第三个表中看到所需的输出

任何指导,甚至为我指出正确的方向都将不胜感激。请让我知道,如果任何关于这个问题是不清楚的,并感谢您的任何帮助

SELECT 
M.[masterID], M.[OrigAcctNum], S.[NewAcctNum], S.[PostAmnt]
FROM Master M
RIGHT JOIN Master_Split S ON M.[masterID] = S.[import_Master_ID]`
主表
+----------+---------+----------+
|masterID | AcctNum | PostAmnt|
+----------+---------+----------+
| 1        | 99999   | 150      |
+----------+---------+----------+
| 2        | 88888   | 200      |
+----------+---------+----------+

Master\u分割
+------------------+-----------+-----------+
|导入|主控| ID |拆分账户|拆分账户|
+------------------+-----------+-----------+
| 1                | 12345     | -50       |
+------------------+-----------+-----------+
| 1                | 54321     | -100      |
+------------------+-----------+-----------+
| 2                | 11111     | -175      |
+------------------+-----------+-----------+
| 2                | 22222     | -25       |
+------------------+-----------+-----------+

结果
+----------+-------------+------------+----------+--------+
|masterID | OrigAcctNum | NewAcctNum | PostAmnt |状态|
+----------+-------------+------------+----------+--------+
|1 | 99999 | 99999 | 150 |原|
+----------+-------------+------------+----------+--------+
|1 | 99999 | 12345 |-50 |分割|
+----------+-------------+------------+----------+--------+
|1 | 9999 | 54321 |-100 |分割|
+----------+-------------+------------+----------+--------+
|2 | 88888 | 88888 | 200 |原|
+----------+-------------+------------+----------+--------+
|2 | 88888 | 11111 |-175 |分割|
+----------+-------------+------------+----------+--------+
|2 | 88888 | 2222 |-25 |分割|

+----------+-------------+------------+----------+--------+

UNION ALL将在一个结果集中为您提供两组信息:

SELECT 
M.[masterID], M.[OrigAcctNum], M.[NewAcctNum], M.[PostAmnt], 'Orig' AS [Status]
FROM Master M
UNION ALL
SELECT 
M2.[masterID], M2.[OrigAcctNum], S.[NewAcctNum], S.[PostAmnt], 'Split' AS [Status]
FROM Master M2
RIGHT JOIN Master_Split S ON M2.[masterID] = S.[import_Master_ID]`

像这样的东西可能会起作用。。在回家前还有5分钟的时间,我在便笺簿上写下了对不起

    select * from 
    (
            select 
                masterID as ID,  AcctNum  as OrigAcctNum,  AcctNum  as NewAcctNum,  PostAmnt,  'Orig' as Status
            from Master 
        union all
            select 
                ms.import_master_ID  as ID,  m.AcctNum  as OrigAcctNum,  ms.SplitAcct as NewAcctNum,  ms.SplitAmnt as PostAmnt,  'Split' as Status
            from Master_Split ms
                join Master m on m.masterID = ms.import_master_ID
            where
    )
    order by ID

你期望的结果是什么?需求是如何变化的?我对问题进行了编辑,以使其更清楚。但是期望的输出是第三个表。结合union和right join,没有想到这一点。非常感谢。