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)
使用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)
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)
如果域是表名