自己結合に関する多くの例を読みましたが、一部のフィールドが一部の行にない場合をカバーしていないようです。
たとえば、次のデータベースがあります。
testId, testItem, testResult
そして行:
1,test1,1
1,test2,0
1,test3,1
2,test1,0
2,test4,1
2,test5,1
出力が欲しい:
testItem,a.testId,b.testId,a.testResult,b.testResult
test1,1,2,1,0
test2,1,NULL,0,NULL
test3,1,NULL,1,NULL
test4,NULL,2,NULL,1
test5,NULL,2,NULL,1
基本的に、2 つの異なる testId (1 と 2) の各 testItem (test1->test5) を比較し、それらの testResult 値を比較して、同じテスト項目を持たない可能性のある testId を考慮します。