【问题标题】:MySQL - If Table A is LEFT JOINed to Table B, how do I ORDER BY a field in Table B?MySQL - 如果表 A 左连接到表 B,我如何按表 B 中的字段排序?
【发布时间】:2011-07-18 03:07:48
【问题描述】:

这是我的 SQL 查询:

    SELECT  pts.pts_id, 
            pts.pts_name, 
            meds.*
    FROM    pts
            LEFT JOIN meds
            ON pts.pts_id = meds.pts_id_fk
    WHERE   pts.id_fk = $id
      AND   pts_current = 1

pts(即表A)有以下数据:

pts_id   time
1        Joe
2        Jack
3        Jill

meds(即表B)有以下数据:

pts_id_fk   time
1           7AM
1           8AM
1           9AM
2           7AM
2          10AM
3          11AM

我想ORDER BY这个查询的结果基于time

有什么建议吗?

【问题讨论】:

    标签: mysql sql sql-order-by left-join


    【解决方案1】:
    SELECT  pts.pts_id, 
                pts.pts_name, 
                meds.*
        FROM    pts
                LEFT JOIN meds
                ON pts.pts_id = meds.pts_id_fk
        WHERE   pts.id_fk = $id
          AND   pts_current = 1
    
    ORDER BY pts.pts_id, meds.time
    

    【讨论】:

      【解决方案2】:

      ORDER BY meds.time怎么样

      【讨论】:

      • 嗨@zerkms - 我应该把它放在哪里?
      • @torr: 在查询的最后
      • 我试过了,它最终重新排序了 pts 记录而不是 meds.time 记录
      • 对不起,我的意思是您的 sugg 正确地订购了 time,但与 pts 顺序混淆了 - @michaels sugg 下面修复了该问题
      猜你喜欢
      • 2012-03-24
      • 1970-01-01
      • 2019-07-15
      • 2014-02-26
      • 1970-01-01
      • 2015-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多