Select von 4 Tabellen ... ?

Das liegt daran, weil ich abgekürzt habe und das Fach aus K nehme.
Man könnte das Fach wieder in der oberen Stufe dazuhängen. Scheint mir aber zu umständlich.

Kannst du mir ev. einen Dump der 4 Tabellen zur Verfügung stellen? Dann könnt ich was austesten was grad in meinem Kopf herumschwirrt
 
Hier sind sie..die sql.txt ...mal das txt entfernen, da ich es nich hochladen kann sonst ;)..

die abfrage.txt ist halt die aktulle abfrage passend zu DB!
 

Anhänge

  • abfrage.txt
    1 KB · Aufrufe: 19
  • übersicht.sql.txt
    1,3 KB · Aufrufe: 19
Nun, ich werd mir die Tabllen Klausurnoten, Leistungskontrolle und Fach wohl selber basteln müssen.
 
Moin licht400,

Geht das nicht mit der sql ^^..sollte doch oder?
Doch, wenn sich die Tabelle "übersicht" durch Zellteilung und/oder gleichgeschlechtliche Fortpflanzung im Minutentakt rasend schnell vermehrt...

... dann müssten es in wenigen Augenblicken 4 Tabellen sein....

Aber ich denke, yaslaw ist NOCH schneller...

(also jetzt nicht mit der gleichgeschlechtlichen Vermehrung, sondern mit dem "Schnell-mal-selbst-Tabellen-Anlegen)

Grüße
Biber
 
Folgende Version funktioniert mit genau einem Fach

SQL:
Select Distinct 
	S.IDPerson, 
	S.Nachname, 
	S.Vorname, 
	IFNULL(KF.KLs, '') AS KLs, 
	IFNULL(LF.LKs, '') AS LKs, 
	F.Fach
from	
	(SELECT @fach:= IDFach, Fach FROM Fach WHERE Fach = 'Mathe' )	AS F, 
	`übersicht` AS S
		LEFT JOIN ( SELECT
	                	K.*,
	            	    GROUP_CONCAT(K.Note SEPARATOR ', ') AS KLs
	    	      FROM 
	        	        klassenarbeit AS K
		          Where
		                K.IDFach = @fach
		          GROUP BY K.IDPerson) AS KF
	     ON S.IDPerson = KF.IDPerson
		LEFT JOIN (Select 
		                 L.*,
		                 GROUP_CONCAT(L.Note SEPARATOR ', ') AS LKs
		           FROM 
		                 leistungskontrolle AS L
		           WHERE 
		                 L.IDFach = @fach
		           GROUP BY L.IDPerson) AS LF
		ON S.IDPerson = LF.IDPerson
GROUP BY s.Nachname

Ich habe das Select auf die Fach-Tabelle auf die oberste Stufe genommen. Die FachID wird in die Variable @Fach geschrieben und in dne Subqueries wiederverwendet.

Zudem habe ich in der obersten Stufe noch ein IFNULL() eingbaut um den Text NULL durch '' zu ersetzen
 
Zuletzt bearbeitet von einem Moderator:
Habs übernommen. Da kommt, wenn ich keine Klausurnote drin stehen habe..

Column "IDK" cannot be null...und wenn ich eine Note eintrage, gehts! (Sprich, wenn die Tabelle Klausurnoten komplett leer ist, gehts kommt der Fehler)

Könnte man das auch ausschließen?
 

Neue Beiträge

Zurück