Es ist schwer für mich, dies zu erklären, so dass Sie wahrscheinlich durch den Titel verwirrt sind. Aber ich werde mein Bestes hier versuchen.Wie man eine Tabelle zweimal mit nur einer Verbindung "beitritt"?
Sagen wir das folgende Szenario haben:
Tests Tabelle
- Test ID
- testtakenby (id)
- testrevisedby (id)
Benutzer
- Benutzer-ID
- Benutzername
Gibt es eine Möglichkeit für mich in der Lage sein, die folgenden Ergebnisse zu erhalten:
"Test von user1 und überarbeitet von user2 genommen wurde"
Ohne zweimal an die Tische gehen zu müssen? So:
select * from tests
inner join users on tests.testtakenby = users.userid
inner join users on tests.testrevisedby = users.userid
Ich hoffe es einen Trick bekommen es durch den Beitritt der gleichen Tabelle zweimal getan, wie ich mögliche Performance-Probleme kümmern erweiterte SQL ist (ich es vermute, mit einem als auch nicht durchführen würde Doppel join)
Wenn Sie Leistungsprobleme haben, sollten Sie nach korrekten Indizes suchen, die Ihre Lösung nicht ändern. – Jens
Ich denke nicht, dass es gibt, und warum würde es ein Leistungsproblem mit dem Beitritt zweimal geben? – Ric
Sie müssen die zweite Instanz von Benutzern Alias - wenn das das Problem ist - eine andere Lösung besteht darin, zwei Unterabfragen in einem Select – Cato