限制来自最新 - JOINED表的行

时间:2015-07-07 03:09:43

标签: php mysql join

我有两个表,customer_ledger和用户。 我在我的简单登录程序中使用PHP,其中用户输入他们的用户名和密码。帐户有效后,会向其显示结算历史记录。所以我加入了两个表来链接用户名和另一个表中的合同号。

我现在的问题是,如何根据字段显示他们的(5)最新账单(LDGR_PER_COV_TO)?我创建了一个MySQL查询,但它给了我不同的结果。

这是我的疑问:

SELECT
    customer_ledger.LDGR_YEAR,
    customer_ledger.LDGR_MONTH,
    customer_ledger.LDGR_PER_COV_FROM,
    customer_ledger.LDGR_PREV_RDNG,
    customer_ledger.LDGR_PER_COV_TO,
    customer_ledger.LDGR_PRES_RDNG,
    customer_ledger.LDGR_KWH_USED,
    customer_ledger.LDGR_BILL_AMOUNT
FROM
    customer_ledger
INNER JOIN users
ON customer_ledger.LDGR_CONTRACT_NO=users.LDGR_CONTRACT_NO
WHERE users.Username = 'kim'
ORDER BY customer_ledger.LDGR_PER_COV_TO ASC
LIMIT 5

这个结果会给我从最顶层的记录开始的行。我希望它从底部向上显示(最新记录 - 最高记录)。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

你应该使用alises来提高可读性, 然后使用DESC代替ASC

    SELECT * FROM 
    (
        SELECT   cl.LDGR_YEAR,         cl.LDGR_MONTH,
                 cl.LDGR_PER_COV_FROM, cl.LDGR_PREV_RDNG, 
                 cl.LDGR_PER_COV_TO,   cl.LDGR_PRES_RDNG, 
                 cl.LDGR_KWH_USED,     cl.LDGR_BILL_AMOUNT 
        FROM     customer_ledger AS cl INNER JOIN users AS u 
                                       ON cl.LDGR_CONTRACT_NO=u.LDGR_CONTRACT_NO 
        WHERE    u.Username = 'kim' 
        ORDER BY cl.LDGR_PER_COV_TO DESC LIMIT 5
    ) AS a
    ORDER BY a.LDGR_PER_COV_TO

新查询::

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>