Ich habe zwei Tabellen, Benutzer und Umfrage. Ich möchte den Tabellenbenutzer abfragen und der Tabellenübersicht so beitreten, dass nur der Umfragedatensatz mit dem niedrigsten Wert für jeden Datensatz in der Benutzertabelle zurückgegeben wird. Ich möchte Unterabfragen und temporäre Tabellen vermeiden.Beitreten Aufzeichnungen mit dem niedrigsten Wert
Tabelle Benutzer:
--------------
| uid | name |
--------------
| 1 | mike |
| 2 | john |
| 3 | bill |
--------------
Tabelle Umfrage:
----------------------
| id | uid | value |
----------------------
| 1 | 3 | 9 |
| 2 | 3 | 5 |
| 3 | 1 | 3 |
| 4 | 1 | 7 |
| 5 | 1 | 2 |
| 6 | 2 | 4 |
| 7 | 2 | 9 |
| 8 | 1 | 0 |
| 9 | 2 | 5 |
---------------------
erwartete Ausgabe:
---------------------
| id | name | value |
---------------------
| 8 | mike | 0 |
| 2 | bill | 5 |
| 6 | john | 4 |
---------------------
Welche Art von JOIN soll ich tun, oder wie soll ich die Abfrage schreiben?
Ich würde eine Unterabfrage verwenden, um die gewünschten Datensätze aus der Umfragetabelle zurückzugeben und diese mit der Benutzertabelle –
zu verbinden. Die Tabelle kann bis zu einer Million Datensätze enthalten. Wäre eine Unterabfrage nicht sehr langsam? – JoeBateMuma
Das hängt wahrscheinlich davon ab, welche Indizes vorhanden sind und die Datenbankserverspezifikation –