MySQL`INNER JOIN`是同一个表的倍数

Sna*_*ops 0 mysql sql join left-join

是否有可能INNER JOIN通过MySQL查询来实现此结果?

我有一张包含策略的表格和一张包含会员的表格.策略表包含与成员表中的ID对应的作者的ID以及更新现有作者工作的作者的ID.是否有可能同时获取对这两个人的引用?像下面的东西,它没有返回错误,但也没有结果......

SELECT * FROM Strategies 
INNER JOIN Members AS a 
INNER JOIN Members AS b 
WHERE Strategies.ID='2' 
AND Strategies.AuthorID = a.ID 
AND Strategies.UpdateAuthorID = b.ID
Run Code Online (Sandbox Code Playgroud)

Mah*_*mal 5

使用LEFT JOIN:

SELECT 
  s.*,
  a.Name AS MemberName,
  b.Name AS UpdatedMemberName
FROM Strategies  AS s
LEFT JOIN Members AS a ON s.AuthorID = a.ID AND s.ID = 2 
LEFT JOIN Members AS b ON s.UpdateAuthorID = b.ID AND s.ID = 2 ;
Run Code Online (Sandbox Code Playgroud)

如果您想在一列中使用它们COALESCE:

SELECT 
  s.*,
  COALESCE(a.Name, b.Name) AS MemberName
FROM Strategies  AS s
LEFT JOIN Members AS a ON s.AuthorID = a.ID AND s.ID = 2 
LEFT JOIN Members AS b ON s.UpdateAuthorID = b.ID AND s.ID = 2  
Run Code Online (Sandbox Code Playgroud)


Nav*_*ida 5

SELECT toD.dom_url AS ToURL, 
    fromD.dom_url AS FromUrl, 
    rvw.*

FROM reviews AS rvw

LEFT JOIN domain AS toD 
    ON toD.Dom_ID = rvw.rev_dom_for

LEFT JOIN domain AS fromD 
    ON fromD.Dom_ID = rvw.rev_dom_from
Run Code Online (Sandbox Code Playgroud)

如果域是表名