Ich habe eine riesige schmerzhafte geerbte Tabelle von ein paar Millionen Datensätze Ich habe Probleme bei der Abfrage effizient. Die Tabelle sieht ein wenig wie folgt aus:SQL - Finden Sie alle "Relationship IDs", wo Schlüssel gleich Wert, dann wählen Sie alle Datensätze mit diesen "Relationship IDs"
id | submissionId | key | value
------------------------------------
1 | 1 | userID | 1
2 | 1 | data | stuff
3 | 2 | userID | 2
4 | 2 | data | stuff2
5 | 2 | data2 | stuff3
6 | 3 | userID | 1
7 | 3 | data | stuff2
8 | 3 | data2 | stuff3
Was ich Abfrage versuche ist alles auswählen „Unterwerfung Daten“ für einen bestimmten Benutzer. So das Ergebnis für userID === 1
würde nur wählen userID verwandt „Unterwerfung Daten“, das heißt:
1 | 1 | userID | 1
2 | 1 | data | stuff
6 | 3 | userID | 1
7 | 3 | data | stuff2
8 | 3 | data2 | stuff3
Im Moment meine beste Lösung ist, alle Datensätze für eine bestimmte Benutzer-ID auswählen. Durchlaufen Sie dann die Ergebnisse und fügen Sie die injectionIDs in ein Array ein. Dann alle Datensätze auswählen, bei denen die EinreichungsID mit einer EinreichungsID in meinem Array übereinstimmt.
Dies wird sehr zeitaufwendig, da es rund 15.000 Benutzer gibt, die ebenfalls durchgeschleift werden müssen. Irgendwelche Ideen, um dies effizienter zu machen oder in einer einzigen Abfrage würden sehr geschätzt werden!
markieren Sie keine Produkte, die nicht direkt beteiligt .. . – jarlh