V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
crist
V2EX  ›  问与答

mysql 如何查询一条记录里面的两个相同属性的值呢?

  •  
  •   crist · 2016-07-30 11:05:31 +08:00 · 5158 次点击
    这是一个创建于 3039 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如:
    relation 表里有字段: id 、 uid 、 hid 、 relation
    user 表里有字段: ID 、 name
    uid 和 hid 是对应 user 表里的 ID 的, relation 字段指明两个人的关系。
    现在我要联合查出一条关系记录,并且带有 uid 和 hid 的 name ,用一条语句如何查??求大神指点,谢谢~
    8 条回复    2016-07-30 11:39:38 +08:00
    skydiver
        1
    skydiver  
       2016-07-30 11:09:51 +08:00 via Android
    as
    crist
        2
    crist  
    OP
       2016-07-30 11:13:13 +08:00
    @skydiver 什么 as
    phperstar
        3
    phperstar  
       2016-07-30 11:17:15 +08:00
    select a.uid,a.hid,a.name from relation a,user b where b.Id = a.uid and uid = xxx;
    aprikyblue
        4
    aprikyblue  
       2016-07-30 11:17:15 +08:00 via Android
    join
    skydiver
        5
    skydiver  
       2016-07-30 11:21:42 +08:00   ❤️ 2
    @crist 同一个语句里可以 join 两次同一个表, as 取个别名就行了。

    select id, uid, hid, ralation, A.name as uname, B.name as hname from relation left join user as A on A.ID = uid left join user as B on B.ID = hid.

    (好像 mysql 的话所有的 as 都可以省略,但是大致就是这个意思)
    crist
        6
    crist  
    OP
       2016-07-30 11:27:34 +08:00
    @phperstar Unknown column 'a.name' in 'field list'
    phperstar
        7
    phperstar  
       2016-07-30 11:28:25 +08:00
    @crist b.name ....这错误一看应该就知道呀,找不到字段名
    crist
        8
    crist  
    OP
       2016-07-30 11:39:38 +08:00
    @skydiver 这个是对的, join 同一个表两次,谢谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   879 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:58 · PVG 05:58 · LAX 13:58 · JFK 16:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.