回答

收藏

mysql连接2个表,2列

技术问答 技术问答 163 人阅读 | 0 人回复 | 2023-09-12

假设我有
9 W/ V8 B' x3 Q9 Z7 E! {( @表student_data和字段是1 M! @5 e& E( H* t" f( S0 v3 `
╔════╦════════════╦════════════╗║ ID ║ CREATED_BY ║ UPDATED_BY ║╠════╬════════════╬════════════╣║  1 ║      ║       ║╚════╩════════════╩════════════╝表creator_updater和字段是0 v. f$ c* l# t! |/ B; H$ f
╔════╦════════════════╗║ ID ║      NAME      ║╠════╬════════════════╣║  1 ║ The Creator    ║║  2 ║ Second Creator ║╚════╩════════════════╝所以我想知道什么是确切的代码,它会显示* W3 _3 P% Y& G* }4 z6 X$ G
            student_data╔════╦═══════════════╦══════════════════════╗║ ID ║ CREATED_BY_ID ║ LATEST_UPDATED_BY_ID ║╠════╬═══════════════╬══════════════════════╣║  1 ║ The Creator   ║ Second Creator       ║╚════╩═══════════════╩══════════════════════╝ 我试过连接语法,但似乎有所不同% r6 a9 m0 U. s8 ]$ K- b  C
                                                                " \" V* m9 l" P$ j
    解决方案:                                                               
: f8 i+ J3 ?$ z( H                                                                您需要将creator_updater为了获得两列名称,表连接两次。
3 ~6 x- w% x* |* s, a; sSELECT  a.id,       b.name created_by_id,       c.name latest_updated_by_idFROM    student_data a        INNER JOIN creator_updater b            ON a.created_by = b.id        INNER JOIN creator_updater c            ON a.updated_by = c.idSQLFiddle演示但是如果其中一列为 可    为 空    ,如果是这样,请使用上面的代码。LEFT JOIN而不是INNER JOIN& r7 u$ S) ~, u' |: E) G7 v3 D
SELECT  a.id,       b.name created_by_id,       c.name latest_updated_by_idFROM    student_data a        LEFT JOIN creator_updater b            ON a.created_by = b.id        LEFT JOIN creator_updater c            ON a.updated_by = c.idSQLFiddle演示
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则