我正在制作一个用户状态列表,格式如下“a like B's XXX”。A和B都是注册用户,都有firstname、lastname和用户id,如何将status表和user表联接两次,得到两个用户的名字?谢谢您。

SELECT "SQACTION"."TIMECREATED",
       "SQWORDLIST".*,
       "SUBJECT"."FIRSTNAME" subject_fn,
       "SUBJECT"."LASTNAME" subject_ln,
        author.firstname author_fn,
        author.lastname author_ln
FROM "SQACTION"
  INNER JOIN "SQWORDLIST"
    ON SQACTION.ACTION = SQWORDLIST.GUID
  INNER JOIN "SQUSER" SUBJECT
    ON SQACTION.SUBJECT = SUBJECT.GUID
  LEFT JOIN SQDOCUMENT
    ON SQACTION.ENTITY = SQDOCUMENT.GUID
  LEFT JOIN SQUSER AUTHOR
    ON SQDOCUMENT.AUTHORID = AUTHOR.GUID
WHERE (SUBJECT.GUID = 'B4D3BF632C0C4DB3AB01C8B284069D8F')
   OR (SUBJECT.GUID IN ('67882AF3FA3C4254AF9A12CA0B0AB6E4',
                        '6A4B52FE233444838AACFE2AFFE4D38F',
                        '8CA3FB9061FF4710B51F1E398D3D1917'))
ORDER BY "TIMECREATED" DESC

这就是我试过的。谢谢您。

最佳答案

您的意思是,status有两个指向用户表的字段链接吗?

select user_a.first_name as user_a_first_name, user_b.first_name as user_b_first_name, status.status_name
from status
left join users as user_a on user_a.id = status.user_from_id
left join users as user_b on user_b.id = status.user_to_id

关于mysql - SQL多次加入?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11805836/

10-16 12:23