【问题标题】:How can I create select statement on this two tables [duplicate]如何在这两个表上创建选择语句 [重复]
【发布时间】:2015-02-07 01:09:19
【问题描述】:

如何在此创建 sql 语句,输出这样,我尝试了内部连接,但我无法在 usertable 中获取 p_id 的名称。

user_id         user_name       p_name                pid

1               millan          null                   

5               jane            millan                 1

6               lester          millan                 1

7               miller          jane                   5

8               jamie           jane                   5

这是我的桌子。 gather_table

p_id        u_id
null         1

1            5

1            6

5            7

5            8

用户表

user_id      user_name

1            millan

2            john

3            max

4            chris

5            jane

6            lester

7            miller

8            jamie

提前谢谢你。

【问题讨论】:

  • p_id 和 u_id 中的 id 值如何关联?它们似乎都链接到用户表,但具体方式尚不清楚。
  • 可以在选择查询中使用select

标签: mysql sql select join left-join


【解决方案1】:

你需要加入user table两次才能得到名字

select
g.u_id,
u1.user_name,
u2.user_name as p_name,
g.p_id as pid
from gather_table g
left join user u1 on u1.user_id = g.u_id
left join user u2 on u2.user_id = g.p_id

【讨论】:

  • 我的 p_name 为空
  • 抱歉,我有一个错字,我已修正。
  • 现在可以了,我只会给你点我已经接受的答案,它也可以。
【解决方案2】:

试试这个:

SELECT u1.user_id, u1.user_name, u2.user_name AS p_name, u2.user_id AS pid
FROM gather_table g 
LEFT JOIN user_table u1 ON g.u_id = u1.user_id 
LEFT JOIN user_table u2 ON g.p_id = u2.user_id 

【讨论】:

    猜你喜欢
    • 2010-09-19
    • 2011-10-24
    • 2016-07-10
    • 2021-09-17
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 2018-05-10
    • 2022-01-17
    相关资源
    最近更新 更多