Unterabfrage - verschachteltes SELECT Problem

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Unterabfrage - verschachteltes SELECT Problem

Re: Unterabfrage - verschachteltes SELECT Problem

von buchenkauz » So, 16.03.2014 14:58

Hallo F3K Total,

danke für die schnelle Antwort und die Lösung meines Problem. Der Ansatz mit den Alias funktioniert sehr gut - auch mit JOIN's:

Code: Alles auswählen

SELECT 
	"Module"."Modulnr" || ' - ' || "Module"."Modulname" AS "Kurs", 
	"Adressen"."Vorname" || ' ' || "Adressen"."Nachname" AS "Name", 
	"Adressen_Dozenten"."Vorname" || ' ' || "Adressen_Dozenten"."Nachname" AS "Dozent" 
FROM "Modulbelegung" 
	LEFT JOIN "Adressen" 
		ON "Modulbelegung"."IDAdressentab" = "Adressen"."AdressID"
	LEFT JOIN "Module" 
		ON "Modulbelegung"."IDModuletab" = "Module"."ModuleID"
	LEFT JOIN "Dozenten" 
		ON "Module"."IDDozentenTab" = "Dozenten"."DozentenID"
	LEFT JOIN "Adressen" AS "Adressen_Dozenten" 
		ON "Dozenten"."IDAdressetab" = "Adressen_Dozenten"."AdressID"
ORDER BY "Kurs"
Vielen Dank.

Re: Unterabfrage - verschachteltes SELECT Problem

von F3K Total » So, 16.03.2014 06:27

Hi,
ja das geht:

Code: Alles auswählen

SELECT 
    "Module"."Modulnr" || ' - ' || "Module"."Modulname" AS "Kurs", 
    "Adressen"."Vorname" || ' ' || "Adressen"."Nachname" AS "Name", 
    "Adressen_Dozenten"."Vorname" || ' ' || "Adressen_Dozenten"."Nachname" AS "Dozent" 
FROM 
    "Modulbelegung", 
    "Adressen", 
    "Module", 
    "Dozenten", 
    "Adressen" AS "Adressen_Dozenten" 
WHERE "Modulbelegung"."IDAdressentab" = "Adressen"."AdressID" 
AND "Modulbelegung"."IDModuletab" = "Module"."ModuleID" 
AND "Module"."IDDozentenTab" = "Dozenten"."DozentenID" 
AND "Dozenten"."IDAdressetab" = "Adressen_Dozenten"."AdressID" 
ORDER BY "Kurs"
Gruß R

Unterabfrage - verschachteltes SELECT Problem

von buchenkauz » So, 16.03.2014 00:46

Hallo,

in einer Datenbank für eine Kursverwaltung unter OOo Base 4.0.1 habe ich folgende Beziehungen zwischen den Tabellen:
Beziehungen
Beziehungen
Beziehungen-buchenkauz.png (39.03 KiB) 4801 mal betrachtet
Ich brauche nun eure Hilfe, weil ich es nicht schaffe, in einer Abfrage Vorname und Name der Dozenten und der Kursteilnehmer anzuzeigen. Die Abfrage läuft über die Modulbelegung als Haupttabelle.
Vorname und Name aus der Adressentabelle sollen ja zweimal abgefragt werden. Einmal für die Kursteilnehmer über die direkte Beziehung Modulbelegung - Adressen und ein zweites Mal indirekt von Modulbelegung über Module - Dozenten - Adressen.
In der von mir angelegten Abfrage sind die Felder für die Dozenten aber leer:

Code: Alles auswählen

SELECT 
	"Module"."Modulnr" || ' - ' || "Module"."Modulname" AS "Kurs", 
	"Adressen"."Vorname" || ' ' || "Adressen"."Nachname" AS "Name", 
	( SELECT 
		"Adressen"."Vorname" || ' ' || "Adressen"."Nachname" 
	FROM "Modulbelegung" 
		LEFT JOIN "Module" 
			ON "Modulbelegung"."IDModuletab" = "Module"."ModuleID" 
		LEFT JOIN "Dozenten" 
			ON "Module"."IDDozentenTab" = "Dozenten"."DozentenID" 
		LEFT JOIN "Adressen" 
			ON "Dozenten"."IDAdressetab" = "Adressen"."AdressID" 
	WHERE "Modulbelegung"."IDModuletab" = "Module"."ModuleID" 
		AND "Module"."IDDozentenTab" = "Dozenten"."DozentenID" 
		AND "Dozenten"."IDAdressetab" = "Adressen"."AdressID" ) 
	AS "Dozent" 
FROM "Modulbelegung" 
	LEFT JOIN "Adressen" 
		ON "Modulbelegung"."IDAdressentab" = "Adressen"."AdressID" 
	LEFT JOIN "Module" 
		ON "Modulbelegung"."IDModuletab" = "Module"."ModuleID"
Wenn ich das WHERE in der SELECT Unterabfrage weglasse, wird der Fehler
Single value expected in statement
angezeigt.
Geht überhaupt was ich gern hätte?
Vielen Dank im voraus.

Nach oben