[linux-l] SQL
Olaf Radicke
olaf_rad at gmx.de
Fr Okt 20 00:33:44 CEST 2006
Am Donnerstag, 19. Oktober 2006 17:35 schrieb Volker Gräbst:
> > dann kann ich die Tabellen "nebeneinander legen" und
> > das durchsuchen nach Paaren dauert nur noch M+N. Daher ist dieses
> > Verfahren wesentlich schneller fuer grosse M und N.
>
> Auch ein LEFT JOIN sollte ebenfalls so arbeiten, nicht nur ein
> Mehrtabellen-SELECT.
Ich glaube ich habe das mit den JOHN noch nicht richtig verstanden.
Hier ist ein Diagramm meiner Tabellen...
http://photos1.blogger.com/blogger/606/3287/1600/DatenbankDiagramm_2006_10_19.png
Wenn ich z.B. die Daten aller Mitglieder haben will, deren Berufe
übereinstimmen, mit dem einer bestimmten Stelle, dann muss ich über die
Tabellen "mitglied", "mitgliederberufe" und "stellen_berufe" suchen. Der
erste Versuch in meinem Programm sieht so aus...
SELECT DISTINCT *
FROM mitglied
WHERE mitglieds_id IN
(
SELECT mitglieds_id
FROM mitgliederberufe
WHERE berufs_id IN
(
SELECT berufs_id
FROM stellen_berufe
WHERE stellen_id = /VARIABLE-1/
)
) LIMIT /VARIABLE-2/ ;
...Allerdings werden spähter noch die
Tabellen "qualitaeten_mitglied", "qualitaeten_stelle", "einschraenkung_mitglied",
"einschraenkung_stellen" berücksichtigt. Also noch mehr Sub-SELECT's. Wie
würde die JOHN-Variante aussehen? Bzw. eine noch genialere Lösung?
Gruß
Olaf
Mehr Informationen über die Mailingliste linux-l