代码之家  ›  专栏  ›  技术社区  ›  Kristopher Ives

使用一对多关系加入SQL

sql
  •  0
  • Kristopher Ives  · 技术社区  · 14 年前

    我正在制作一个工具来跟踪给众议院/参议院代表的电话,这里我有两个重要的表格:

    代表

    rep_id
    rep_name # and more info
    

    评论

    rep_id
    status # enum about result of contact
    comment
    

    我想查询所有 reps 加入最近关联的 comments 在某些情况下加入 评论 一个特定的 status 但是可能没有 评论 与之相关的 rep 然而。

    谢谢!

    2 回复  |  直到 14 年前
        1
  •  4
  •   KM.    14 年前

    你需要一些方法来区分最新的评论,所以我编了一个新的专栏: comments.commentDate ,或某些自动编号/标识使用如下查询:

    SELECT
        r.*,c.*
        FROM reps r
            LEFT OUTER JOIN (SELECT
                                 rep_id,MAX(commentDate) AS MaxDate
                                 FROM comments
                                 GROUP BY rep_id
                            ) m On r.rep_id=m.rep_id
            LEFT OUTER JOIN comments c ON r.rep_id=c.rep_id AND m.MaxDate=c.commentDate
        ORDER BY r.rep_name
    
        2
  •  1
  •   Viral Shah    14 年前

    编辑:

    使用左连接获得所有重复,

    SELECT reps.rep_id, comments.comment
    FROM reps
    LEFT JOIN comments
    ON reps.rep_id=comments.rep_id