私はこれを説明するのは難しいので、タイトルによって混乱する可能性があります。 しかし、私はここで最善を尽くします。1回のジョインだけでテーブルを2回「ジョイン」する方法は?
は、我々は次のシナリオを持っていると言う:
テスト表
- テストID
- testtakenby(ID)
- testrevisedby(ID)
ユーザー
- ユーザーID
- ユーザー名
は私が次の結果を得ることができるようにするためにそこの方法です:
"テストは、user1とuser2ので改訂によって撮影されました"テーブルに2回参加する必要はありませんか?私は二度同じテーブルに参加することによって可能にパフォーマンスの問題を心配して、私は(私はそれがAと同様に行わないと推測それは終らの高度なSQLのトリックがある願ってい
select * from tests
inner join users on tests.testtakenby = users.userid
inner join users on tests.testrevisedby = users.userid
:このように ダブル
パフォーマンス上の問題がある場合は、ソリューションを変更しない正しいインデックスを探してください。 – Jens
私はそこにいるとは思っていません、なぜ2回参加することでパフォーマンスの問題が起こるのでしょうか? – Ric
ユーザーの2番目のインスタンスに別名を付ける必要があります。問題がある場合は、2つのサブクエリを選択することです – Cato