SQL mehrere Spalten in IN-Klausel

Wenn wir brauchen, um der Abfrage eine Tabelle, basierend auf einem set von Werten für eine bestimmte Spalte, wir können einfach verwenden Sie die IN-Klausel.

Aber wenn die Abfrage ausgeführt werden müssen, die sich aus mehreren Spalten, die wir nicht verwenden konnten, IN der Klausel(grep in SO threads.)

Aus anderen threads können wir umgehen dieses problem mithilfe von Verknüpfungen oder exists-Klausel etc. Aber Sie funktionieren alle, wenn sowohl die Haupt-Tabelle und suchen von Daten in der Datenbank.

E.g
User table:
firstName, lastName, City

Gegeben eine Liste (Vorname, Nachname) - Tupeln, die ich brauche, um die Städte.

Ich denken kann von folgenden Lösungen.

1

Konstrukt einer select-Abfrage wie

SELECT city from user where (firstName=x and lastName=y) or (firstName=a and lastName=b) or .....

2

Laden alle firstName, lastName Werte in eine staging-Tabelle und führen Sie einen join zwischen 'user' - Tabelle und der neuen staging-Tabelle.

Gibt es irgendwelche Möglichkeiten, dieses problem zu lösen, und was ist die bevorzugte Lösung dieses Problems im Allgemeinen?

InformationsquelleAutor der Frage Htaras | 2012-10-23

Schreibe einen Kommentar