[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