0

INNER JOINMySQL クエリでこの結果を達成することは可能ですか?

戦略のテーブルとメンバーのテーブルがあります。Strategy テーブルには、Member テーブルの 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
4

2 に答える 2

6

次を使用し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 ;

それらを1つの列に入れたい場合は、次を使用します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  
于 2013-03-05T06:59:34.897 に答える
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

ドメインがテーブル名の場合

于 2013-03-05T06:59:49.557 に答える