Mehrere Tabellen auslesen und ausgeben
Alexander
- datenbank
0 Genius_Dexter0 Odium
0 Klaus Mock
Hallo,
kann mir jemand helfen (Beispiel) oder Referenzen nennen, mit dem ich folgendes löse:
Ich möchte aus drei Tabellen einen Query erstellen. In der Haupttabelle stehen z. B. Vorname, Nachname, Indexzahl für einen Zusatztext, Indexzahl für eine Zusatzinfo.
Der Query soll über Haupttabelle, Texttabelle, Infotabelle laufen und mir aus Text und Infotabelle die Infos zu der Person mit dem Indize "1" ausgeben.
Wie geht das sinnvollerweise?
Grüße
Alexander
Du hast ja sicher einen Wert, den du eingibst (z.B. den Nachnamen)
select text.Zusatztext, info.Zusatzinfo from Texttabelle text, Infotabelle info where text.index = (Select index from Haupttabelle Where Nachname = @eingegebenerNachname) and info.index = (Select index from Haupttabelle Where Nachname = @eingegebenerNachname)
Ohne Garantie aus dem hohlen Bauch raus. ;)
Hallo,
informier dich mal über joins...
hab grad keine Adresse parat...
Odium
Hallo,
Der Query soll über Haupttabelle, Texttabelle, Infotabelle laufen und mir aus Text und Infotabelle die Infos zu der Person mit dem Indize "1" ausgeben.
So etwas nennt man dan Joins, in Kombination mit einer Filterung.
Je nach verwendeter Datenbank kann das unterschiedlich gelöst werden.
Sollte die Datenbank SQL-fähig sein, und grundsätzlich Joins unterstützen (ist nicht immer der Fall) so könnte ein Minimalstatement in etwa so aussehen:
select haupttabelle.feld1,haupttabelle.feld2,texttabelle.feld
from haupttabelle, texttabelle
where Haupttabelle.texttabellenid = texttabelle.id
and haupttabelle.id = 1
Es gibt auch Datenbanken die das Schlüsselwort JOIN unterstützen. Dann könnte es so aussehen
select haupttabelle.feld1,haupttabelle.feld2,texttabelle.feld
from haupttabelle
join texttabelle
on Haupttabelle.texttabellenid = texttabelle.id
where haupttabelle.id = 1
(das sind jetzt alles ungetestete SQL-Abfragen)
Näheres mußt Du in der Dokumentation zu deinem Datenabnksystem nachschlagen.
Grüße
Klaus
Hi zusammen,
danke, das hilft weiter!
Gruß
Alexander