【问题标题】:mySQL join two tables and display specific records in sorted ordermySQL 连接两个表并按排序顺序显示特定记录
【发布时间】:2013-01-10 04:33:59
【问题描述】:

我有两张桌子:

存款

accountNumber    balance    addDate
0000102          5000       21/01/2013
0000105          5500       21/01/2013
0010024          9800       21/01/2013
0000102          2500       22/01/2013
0000105          9000       22/01/2013
.......          ....       ../../....   //rest of the records

提现

accountNumber    balance    addDate
0000102          2500       20/01/2013
0010024          5000       20/01/2013
0000105          1500       20/01/2013
.......          ....       ../../....  //rest of the records

现在,我需要将这两个表的结果显示为:

详情

date          withdrawal   deposite
20/01/2013    2500
21/01/2013                 5000
22/01/2013                 2500

对于特定的accountNumber = 0000102order by addDate

我是数据库新手。

【问题讨论】:

  • 那么你的问题是什么?

标签: mysql sql join


【解决方案1】:

或者,对 JW 对您评论中要求的列别名的回答稍作更改:

SELECT addDate AS date, w as withdrawal, d as deposit
    FROM
        (
            SELECT  accountNumber, '' as w, balance as d, addDate FROM deposit
            UNION ALL
            SELECT  accountNumber, balance as w, '' as d, addDate FROM withdrawal
        ) s
    WHERE   accountNumber = '0000102'
    ORDER   BY date

【讨论】:

  • 感谢您的回复。但是这个query打印NULL如果没有数据的话。我需要它是空的。在这种情况下我该怎么办?
  • 空值的显示取决于您使用的报告工具。有些显示“NULL”,有些根本不显示任何内容(在这种情况下,这显然是您想要的)。如果您想要一个空字符串,那么您可以在 SQL 语句中将 null 更改为 ''(2 个单引号) - 我将编辑答案以显示这一点。
【解决方案2】:

基本上,您需要在此处使用UNION ALL 来保留结果的重复项。

SELECT addDate AS date, balance
FROM
    (
        SELECT  accountNumber, balance, addDate FROM deposit
        UNION ALL
        SELECT  accountNumber, balance, addDate FROM withdrawal
    ) s
WHERE   accountNumber = '0000102'
ORDER   BY date

【讨论】:

  • 好吧,你得到你想要的! ;-)
  • @Strawberry:是的,谢谢 JW。我只是期待它对我有用
  • @MohammadFaisal 我确实回答了你的问题,对吗?您编辑了与您发布的第一个问题有不同要求的问题。您需要打开另一个问题,而不仅仅是针对另一个要求更新它。所以如果您有其他要求,您将再次更新问题并接受另一个答案吧?
  • @JW。我真的很抱歉。当我更新问题并且上述答案适合该上下文时,这就是我接受的原因。
猜你喜欢
  • 2012-07-13
  • 1970-01-01
  • 2014-08-17
  • 1970-01-01
  • 2015-08-29
  • 2012-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多