Mysql 合并两个表的行
我有两个表,我想根据一个字段合并它们的行。我将非常欣赏用于此任务的简单sql代码。例如,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
表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列,它们将包含两个表中的行。