• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] SELECT - Datensatz - mehrfach gleiches Feld - unterschiedlicher Parameter

Status
Für weitere Antworten geschlossen.

Seyonne

Mitglied
Hallo Zusammen,

Ist es möglich in einer SQL-Abfrage speziell Inhalte einer Tabelle entsprechend separater Kriterien mehrfach in einen Datensatz zu bekommen?

Siehe unten: Tabelle Kunde enthält Foreign-Key Rechnungsadresse und Foreign-Key Lieferadresse.
Nun möchte ich in dem Datensatz jeweils die Felder aus Tabelle enthalten haben.

Das ich die Daten in separaten Abfragen bekomme und in PHP verarbeiten kann ist klar.
Mir geht es lediglich darum ob soetwas mit SQL möglich ist.

Mittels UNION bekomme ich leider 2 Datensätze statt einen kombinierten.
-> SELECT zip inv_zip, '' del_zip FROM kunde WHERE x=y
-> UNION
-> SELECT ''_zip, zip del_zip FROM kunde WHERE x=y
-> ORDER BY zip ASC

Tabelle kunde
+-----+--------------+--------------+
| idK | idInvoice | idDelivery |
+-----+--------------+--------------+
| 1 | 1 | 2 |
| 2 | 3 | 3 |
+-----+--------------+--------------+

Tabelle adresse
+----+---------+---------+------------+----+
| id | zip | city | street | nr |
+----+---------+--------+-------------+----+
| 1 | 12345 | Blub | Blubber | 1 |
| 2 | 23456 | Blob | Blobber | 2 |
| 3 | 34567 | Blab | Blabber | 3 |
+----+---------+--------+-------------+----+

Ergebnis
+----+-----------------+-----------------+------------------+--------------------+
|idK|zip (Invoice)|zip (Delivery)| City (Invoice) | City (Delivery) |
+----+---------------- +-----------------+------------------+--------------------+
| 1 | 12345 | 23456 | Blub | Blob |
| 2 | 34567 | 34567 | Blab | Blab |
+----+-----------------+-----------------+-------------------+-------------------+

Vielen Dank im Voraus,
Marcus
 
Werbung:
Hallo,

Habe es nun hinbekommen.
Zur Info für diejenigen die im ersten Moment auch nicht daran dachten:
Ist jetzt nur kurz und als Dummy geschrieben da Original mit diversen JOIN und dynamisch aus PHP generiert ist aber der Ansatz ist klar.

SELECT
k.idK,
(SELECT a.zip FROM address a WHERE a.id=1) as zipInvoice ,
(SELECT a.zip FROM address a WHERE a.id=2) as zipDelivery
FROM
kunde k
WHERE 1=2;

+-----+----------------+----------------+
| idK | zipInvoice | zipDelivery |
+-----+----------------+----------------+
|1 | 12345 | 23456 |
+-----+----------------+----------------+
1 Row
*****
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben