Abfragen zweier Tabellen (nicht relationel)
Ich habe ein Problem mit einer Abfrage von zwei Tabellen:
1. Tabelle
2. Tabelle
Folgende Ausgabe möchte ich gerne erreichen:
Kann ich sowas irgendwie mit einer SQL-Abfrage realisieren?
Oder weiß jemand, wie ich es automatisiert hinbekomme die zweite Tabelle in die Form:
1. Tabelle
ID_Auto AutoName
100 Ford
101 VW
2. Tabelle
ID_Auto ID_Feld Feld_Inhalt
100 0 Sommer-Reifen
100 1 Test-Eintrag
101 0 Winter-Reifen
Folgende Ausgabe möchte ich gerne erreichen:
Ford Sommer-Reifen Test-Eintrag
VW Winter-Reifen
Kann ich sowas irgendwie mit einer SQL-Abfrage realisieren?
Oder weiß jemand, wie ich es automatisiert hinbekomme die zweite Tabelle in die Form:
ID_Auto Feld0 Feld1
100 Sommer-Reifen Test-Eintrag
101 Winter-Reifen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 112143
Url: https://administrator.de/forum/abfragen-zweier-tabellen-nicht-relationel-112143.html
Ausgedruckt am: 23.12.2024 um 10:12 Uhr
3 Kommentare
Neuester Kommentar
Ich habe zwar keine Ahnung wie es ohne relationale Verknüpfungen gehen soll, aber mit Hilfe relationaler Verknüpfungen sähe es so aus:
Mit TA1 als 1. Tabelle und TA2 als 2. Tabelle.
Anmerkung: Bei mir sind die IDs varchar definiert und je nach System muß man eventuell die [ ] durch ( ) ersetzen.
SELECT TA1.AutoName, t2_1.FELD_Inhalt, t2_2.FELD_Inhalt
FROM (TA1 LEFT JOIN [select * from TA2 where ID_FELD='0']. AS t2_1 ON TA1.ID_AUTO = t2_1.ID_AUTO) LEFT JOIN [select * from TA2 where ID_FELD='1']. AS t2_2 ON TA1.ID_AUTO = t2_2.ID_AUTO;
Anmerkung: Bei mir sind die IDs varchar definiert und je nach System muß man eventuell die [ ] durch ( ) ersetzen.
Moin Moin
Mein vorschlag sähe so aus: (Wobei ich Tabelle1 "Autos" und Tabelle2 "Reifen" getauft habe.
Ist im Grunde das gleiche in grün, nur ohne "Unterabfragen".
Und natürlich das Select Entsprechend erweitern:
Gruß L.
Mein vorschlag sähe so aus: (Wobei ich Tabelle1 "Autos" und Tabelle2 "Reifen" getauft habe.
Select Autoname, Reifen1.Feld_Inhalt, Reifen2.Feld_inhalt
From Autos
LEFT JOIN Reifen As Reifen1 ON Autos.ID_Auto = Reifen1.ID_Auto AND Reifen1.ID_feld = 0
Left JOIN Reifen As Reifen2 ON Autos.ID_Auto = Reifen2.ID_Auto AND Reifen2.ID_feld = 1
Zitat von @MeisterQui-GonJinn:
Jetzt eine weiterführende Frage. Es ist ja nicht so, dass ich
nur 2 IDs in Tabelle2 habe sondern gleich 51.... kann ich den LEFT JOIN solange verlängern wie ich möchte
Ja Theoretisch schon. Alledings haben die meisten Datenbanken eine Max. Länge für Abfragen.Jetzt eine weiterführende Frage. Es ist ja nicht so, dass ich
nur 2 IDs in Tabelle2 habe sondern gleich 51.... kann ich den LEFT JOIN solange verlängern wie ich möchte
und wenn ja wie?
Für die 2. Tabelle immer einen neuen Alisanamen vergeben, etwa so:...
Left JOIN Reifen As Reifen2 ON Autos.ID_Auto = Reifen2.ID_Auto AND Reifen2.ID_feld = 1
Left JOIN Reifen As Reifen3 ON Autos.ID_Auto = Reifen2.ID_Auto AND Reifen2.ID_feld = 2
Left JOIN Reifen As Reifen4 ON Autos.ID_Auto = Reifen2.ID_Auto AND Reifen2.ID_feld = 3
....
Select ...... Reifen2.Feld_Inhalt, Reifen3.Feld_Inhalt, Reifen4.Feld_Inhalt
...
Kann man das auch automatisieren?
Ja, aber wozu. Die Abfrage erstellst Du einmal und dann hast Du Sie.Gruß L.