mysql通过两列连接查询顺序

时间:2016-08-19 11:50:51

标签: mysql left-join inner-join

我正在尝试连接两个表,并且在两个表中我有2个相同的列名,例如agent_id和日期,两个表都有agent_id和日期实际上我基于agent_id连接表,现在我想按日期列排序但是作为两个表有日期列,所以它显示两次我想要的日期列应该显示一次,这里的日期排序是我的表的一个例子:

Table 1 (sales_report)
date          agent_id  agent_name  agent_commission
01-Jan-2016   1         Jhon         200   
02-Jan-2016   2         Smith        250 
03-Jan-2016   3         Tracy        150
04-Jan-2016   4         Sam          120

Table 2 (payments)
date          agent_id  paid
02-Jan-2016   1         200   
03-Jan-2016   2         150 
04-Jan-2016   3         100
05-Jan-2016   4         50

我试图通过agent_id加入这两个表,现在我的问题是如何按日期订购?

以下是我的查询:

SELECT *
FROM `sales_report`
INNER JOIN `payments`
ON `sales_report`.`agnt_id`=`payments`.`agnt_id` ORDER BY date

2 个答案:

答案 0 :(得分:1)

    SELECT sr.*,pm.paid
    FROM `sales_report` as sr
    INNER JOIN `payments` as pm
    ON sr.`agent_id`=pm.`agent_id` 
    ORDER BY sr.date, pm.date

将在第一个表日期和第二个表格日期之后从第一张表和订单中获取日期。

答案 1 :(得分:0)

    SELECT * FROM
    (
         SELECT sr.date
            FROM `sales_report` as sr
         UNION
         SELECT pm.date
            FROM `payments` as pm
        )
    ORDER BY date

我认为这是您想要的,sales_reportpayments都需要被视为一个表格。然后对其进行排序。