Mysql 合并两个表的行

Mysql 合并两个表的行,mysql,Mysql,我有两个表,我想根据一个字段合并它们的行。我将非常欣赏用于此任务的简单sql代码。例如, 表1。调用:余额 PubID | Year | StudID |DrAmt| CrAmt| Desc| ------------------------------------------ 12 | 2012 | OK1 | 100 | 0 | Bal c/f 11 | 2012 | OK2 | 250 | 0 | Bal c/f 10 | 2012 | OK3

我有两个表,我想根据一个字段合并它们的行。我将非常欣赏用于此任务的简单sql代码。例如,
表1。调用:余额

PubID | Year | StudID |DrAmt| CrAmt| Desc|
------------------------------------------
12    | 2012 | OK1    | 100 | 0    | Bal c/f
11    | 2012 | OK2    | 250 | 0    | Bal c/f
10    | 2012 | OK3    | 0   | 50   | Bal c/f
12    | 2012 | OK4    | 10  | 0    | Bal c/f

表2。调用:余额\u详细信息

PubID | Items      | DrAmt | CrAmt|
-----------------------------------
12    | Stationary | 10    | 0
12    | Pendrive   | 30    | 0
12    | Utility    | 40    | 0
11    | Stationary | 5     | 0
11    | Pendrive   | 30    | 0
11    | Utility    | 10    | 0 
等等。
我现在想要一个类似于这个表的结果。此表包含studID及其余额c/f以及每个PubID的余额详细信息。我只需要一个DrAmt列和一个CrAmt列,其中将包含两个表中的行以及Desc列。:/br/>

PubID | Year | StudID |DrAmt| CrAmt| Desc|
------------------------------------------
12    | 2012 | OK1    | 100 | 0    | Bal c/f
12    | 2012 | OK1    | 10  | 0    | Stationary
12    | 2012 | OK1    | 30  | 0    | Pendrive
12    | 2012 | OK1    | 40  | 0    | Utility
11    | 2012 | OK2    | 250 | 0    | Bal c/f
11    | 2012 | OK2    | 5   | 0    | Stationary
11    | 2012 | OK2    | 30  | 0    | Pendrive 
11    | 2012 | OK2    | 10  | 0    | Utility  

据我所知,您不能合并这两个表,因为结果表有两列:

StudID
Desc
不属于
余额\u明细表的一部分。如果这两列是
balances\u detail
表的一部分,则可以在sql语句中使用关键字,该关键字有一个约束:

请注意,UNION中的每个SELECT语句必须具有相同的 列数。列还必须具有类似的数据类型。 此外,每个SELECT语句中的列的顺序必须相同

请查看此链接,了解“Union”关键字

您在寻找什么

    SELECT b.PubID, a.Year, a.StudID, b.DrAmt, b.CrAmt, b.Items AS Description 
    FROM Table2 b
    JOIN Table1 a ON a.PubID=b.PubID
    UNION
    SELECT a.PubID, a.Year, a.StudID, a.DrAmt, a.CrAmt, a.Description
    FROM Table1 a
    ORDER BY 1,2,3

请展示你们的尝试。@Mitch,我的尝试并没有产生任何结果,挑战来自两张桌子上的DrAmt和CrAmt。我只需要一个DrAmt列和一个CrAmt列,它们将包含两个表中的行。