如何使用 select 语句显示引用相同外键的 2 个不同外键?

How to use a select statement to show 2 different foreign keys that reference the same foreign key?

我有三个这样的表,


User
id | FName | Lname | Email
---+-------+-------+----------------------
1  | Bob   | Jim   | Bjim@email.com
2  | Smith | Jane  | gjane@email.com
3  | John  | Smith | Jsmith@email.com

post
id | description         | Title          | Postuser 
---+---------------------+----------------+----------
1  |   A large content   | A simple title | 2        
2  |   Small Content     |complex title   | 1        

Comments
id | Content             | Commentuser | CommentPost 
---+---------------------+-------------+-------------
1  |   A large content   | 2           |2
2  |   Small Content     | 1           |2

Commentuser 和 Postuser 都引用了用户 ID。 Post id 被评论引用Post

对于我的 select 声明,我需要给出第二个 post 的标题、内容和作者的名字、作者的姓氏和作者的电子邮件地址 post 以及在 post 上发表的任何评论内容以及评论作者的名字、姓氏和电子邮件地址,共 2 行

post 的用户与评论的用户不同,所以我 select 如何同时给出名字和姓氏?我在这里看到的其他链式连接不包括这种类型的事情,因为有 3 个表。我得到了

的骨架代码
Select Post.Content, ... 
FROM User,...,User AS Author 
WHERE ... AND Author.id = ...; 

编辑:预期结果

|Content              | Title          | PostFName | PostLname | PostEmail     | Comment Content| Comment Firstname|comment Lastname|
-------------------------------------------------------------------------------------------------------------------------------------
|   Small Content     |complex title   | Bob       | Jim       | BJim@email.com| A large content| Smith           | Jane           |
|   Small Content     |complex title   | Bob       | Jim       | BJim@email.com| A small content| John            | Smith          |

您可以多次加入用户table;你只需要使用别名来避免歧义:

select p.description, p.title, 
    pu.fname postfname, pu.lname postlname, pu.email postemail,
    c.content commentcontent,
    cu.fname commentfname, cu.lname commentlname, cu.email commentemail
from post p
inner join user pu on pu.id = p.postuser
inner join comments c on c.commentpost = p.id
inner join user cu on cu.id = c.commentuser