Beispiel
Meine Abfrage würde zwei Zeilen für Bob mit dem erzeugenEinziger Unterschied ist die Telefonnummer. Die Tabelle, aus der ich die Telefonnummern erhalte, hat jedoch eine Telefonnummer. Zum Beispiel wäre die erste Zeile für bob die ID des Telefontyps 1 und die zweite Zeile wäre 2. Ich brauche beide in derselben Zeile
Ich nahm an, ich müsste für jeden Telefon-ID-Typ eine Unterabfrage durchführen ... aber das scheint nicht zu funktionieren. Ich komme einfach immer wieder zurück
Unterabfrage gab mehr als 1 Wert zurück. Dies ist nicht zulässig, wenn die Unterabfrage folgt =,! =, <, <=,>,> = Oder wenn die Unterabfrage als Ausdruck verwendet wird.
Was ich möchte meine Anfrage zu produzieren
Was ich für die Abfrage benötigen, um zu produzieren
Vielen Dank
Antworten:
0 für die Antwort № 1Wenn Sie eine begrenzte Anzahl von Telefontypen haben, können Sie a verwenden LINKE ÄUSSERE VERBINDUNG auf telephone
Tabelle für jeden Typ. Ex:
SELECT e.name, t1.phoneNumber AS telephone1, t2.phoneNumber AS telephone2, e.email, ...
FROM person AS e
LEFT OUTER JOIN telephon AS t1 ON t1.personID = e.Id AND typeId = 1
LEFT OUTER JOIN telephon AS t2 ON t2.personID = e.Id AND typeId = 2
...
WHERE ....