【问题标题】:How to fetch two tables and sort the data by date?如何获取两个表并按日期对数据进行排序?
【发布时间】:2017-04-15 20:35:04
【问题描述】:

我需要一个从两个表中获取数据并按日期对它们进行排序的查询。

表 1:发票

<?php
$query = mysql_query("select * from invoice where customer = 95");
?>
ID     Customer     Amount     Date
1      95           1500       01-Apr-2017
2      95           5500       09-Apr-2017
3      95           22000      10-Apr-2017
4      95           35000      11-Apr-2017

表 2:付款

<?php
$query = mysql_query("select * from Payments where customer = 95");
?>
ID     Customer     Amount     Date
1      95           10000      02-Apr-2017
2      95           11000      09-Apr-2017
3      95           22000      11-Apr-2017
4      95           1200       15-Apr-2017

我需要如下输出:

ID     Date           InvoiceDR     InvoiceCR
1      01-Apr-2017    1500          -
2      02-Apr-2017     -            10000
3      09-Apr-2017    5500          -
4      09-Apr-2017     -            11000             

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:
    $query = mysql_query("SELECT * FROM (
    (SELECT invoice.id, NULL AS invoiceDR, invoice.InvoiceCR, invoice.Date FROM invoice)
    UNION ALL
    (SELECT NULL AS id, paymentd.InvoiceCR, NULL AS InvoiceDR, payments.Date FROM Payments)
    ) results ORDER BY Date ASC");
    

    在查询末尾按日期排序 并根据您的需要更改日期顺序

    【讨论】:

    • 我需要按日期在两个表发票和付款订单之间获取数据
    • 在哪个表格日期字段可用?
    • 你能解释一下 InvoiceDR 和 InvoiceCR 在 table tame 中
    • 两个表中都有日期字段我需要获取数据,其中客户 = 96 按日期排序(我需要日期序列 asc 结合两个表)我认为应该在这里使用 join 或 goup 但我不知道如何使用它
    • 其实我想创建报表(总账)...
      sno -- 日期 -- 贷方 -- 借方
    【解决方案2】:

    您可以为此目的使用“order by”。您可以通过升序和降序(ASC 或 DESC)设置顺序。使用此查询。

    select * from Invoice,Payments where '{condition}' order by Invoice.Date ASC , Payemnts.Date ASC
    

    此查询将首先根据第一个表(Invoice)对数据进行排序,然后再根据第二个表(Payemnts)对排序后的数据进行排序

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-08
      • 2019-01-17
      • 2020-06-04
      • 2022-01-12
      相关资源
      最近更新 更多