SQL Query liefert haufenweise gleiche EInträge

forsti222

Mitglied
Ich muss aus einer SQL Datenbank eine Abfrage starten und habe ein kleines Problem und zwar wird mit meinen Query xmal der name mit zugehöhriger PErsn ausgegeben.
Struktur sieht so aus:
LVA {LVAnr,name,std,typ}
Person{PersNr,Name}
Abhaltung{lvaNR,Persnr,...}
Select a.PersNr,p.Name FROM LVA l,Person p, Abhaltung a WHERE a.lvanr = (SELECT lvanr FROM LVA where Name='Informationssysteme 1' and Typ='VO')

Ich müsste aber als ergebnis immer nur 1mal den Namen bekommen und nicht jeden namen xfach! Könnt ihr mir helfen?
 
Hi

Du hast im ersten Teil deines Querys zwei Tabellen, nutzt davon aber nur eine. Wenn du in der Where-Clause nicht beide verknüpfst (ich nehm mal an lvaNr) erzeugst du eine Kreuztabelle!
 
Hab ich doch schon geschrieben! Entweder du verknüpfst sie in der WHERE-Clause oder du nimmst die nichtbenötigten Tabelle raus

SQL:
Select a.PersNr,p.Name FROM LVA l,Person p, Abhaltung a WHERE a.Name='Informationssysteme 1' and a.Typ='VO' AND l.LVANr = a.LVANr AND a.PersNr = p.PersNr
(ungetestet und nur vom Prinzip hingeschrieben.
Das Subselect brauchst du übrigens nicht
 
Dann ist dein Query immer noch nicht korrekt!
Prüfe, ob deine WHERE-Clause alle Einschränken enthält und alle verwendeten Tabellen verbunden sind!
Gibt es in den Tabellen (z.B. Abhaltung) verknüpfte Datensätze, die eine Multiplikation hervorrufen?

Die von dir gelieferten Information sind zu gering genaueres zu sagen
 
Code:
SELECT DISTINCT a.PersNr,p.Name FROM LVA l,Person p, Abhaltung a WHERE a.Name='Informationssysteme 1' AND a.Typ='VO' AND l.LVANr = a.LVANr AND a.PersNr = p.PersNr

Code von Nico

Gruß
 
Zurück