【问题标题】:Join two fields from same table in mysql [duplicate]在mysql中加入来自同一个表的两个字段[重复]
【发布时间】:2016-01-24 12:34:10
【问题描述】:
SELECT  pms.id, 
                    pms.id_from, 
                    pms.id_to, 
                    pms.fecha, 
                    pms.leida, 
                    usuarios.img_src  as avatar_from, 
                    usuarios.alias as name_from,
                    usuarios.img_src  as avatar_to, 
                    usuarios.alias as name_to  
FROM pms 
LEFT JOIN usuarios ON usuarios.id = pms.id_from
LEFT JOIN usuarios ON usuarios.id = pms.id_to

每行两个引用usuario(别名或img_src)的问题:

我得到这个错误:

The following errors were reported:
Not unique table/alias: 'usuarios'

或者这个

SELECT  pms.id, 
                pms.id_from, 
                pms.id_to, 
                pms.fecha, 
                pms.leida, 
                usuarios.img_src  as avatar_from, 
                usuarios.alias as name_from,
                usuarios.img_src  as avatar_to, 
                usuarios.alias as name_to  
FROM pms 
LEFT JOIN usuarios ON usuarios.id = pms.id_from OR usuarios.id = pms.id_to

有效,但我为每个 _to 和 _from 获得相同的名称和图像

那么,去这里的路是什么?

【问题讨论】:

    标签: mysql left-join multiple-columns


    【解决方案1】:

    是的,加入同一个表将需要表名的唯一别名

    select 
    p.id,
    p.id_from, 
    p.id_to, 
    p.fecha, 
    p.leida, 
    u1.img_src  as avatar_from, 
    u1.alias as name_from,
    u2.img_src  as avatar_to, 
    u2.alias as name_to  
    from pms p
    LEFT JOIN usuarios u1 ON u1.id = p.id_from
    LEFT JOIN usuarios u2 ON u2.id = p.id_to
    

    【讨论】:

      【解决方案2】:

      如果你两次使用同一个表,你需要不同的别名

      SELECT  pms.id, 
              pms.id_from, 
              pms.id_to, 
              pms.fecha, 
              pms.leida, 
              u_from.img_src  as avatar_from, 
              u_from.alias as name_from,
              u_to.img_src  as avatar_to, 
              u_to.alias as name_to 
      FROM pms 
      LEFT JOIN usuarios u_from ON u_from.id = pms.id_from
      LEFT JOIN usuarios u_to ON u_to.id = pms.id_to
      

      【讨论】:

        猜你喜欢
        • 2016-01-10
        • 1970-01-01
        • 2015-12-13
        • 1970-01-01
        • 1970-01-01
        • 2020-05-03
        • 2017-08-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多