dedlfix: Abfrage Wert auch in weiterer Tabelle...

Beitrag lesen

Hi!

ja, ist klar, nur warum gehts nicht?

Wir können nicht hellsehen. Du musst uns schon genau beschreiben, was du machst, was rauskommen soll und was stattdessen kommt, inklusive Fehlermeldung.

SELECT birth,name,Bild,Lebensalter FROM Schueler WHERE EXISTS (SELECT name FROM Schueler,Teilnehmer WHERE name.Schueler = name.Teilnehmer) AND Lebensalter < 50 ORDER BY Lebensalter DESC LIMIT 10

Man notiert zuerst den Tabellen-/Alias-Namen, dann den Punkt und den Feldnamen. Und bei EXISTS-Subquerys interessiert sich das DBMS für keine Spaltennamen, da darf also ruhig ein * stehen. Außerdem kommt in die Subquery-FROM-Klausel nur die andere Tabelle. Was du da notiert hast, ist ein Inner Join, der jeden Datensatz mit jedem verknüpft. Da kommt also immer eine Ergebnismenge und EXISTS liefert TRUE (außer wenn Schueler und Teilnehmer gar keine Schnittmenge haben). Du brauchst stattdessen eine korrelierte Subquery, bei der ein Wert der äußeren Query mit einem der inneren Query in Beziehung gesetzt wird. Die innere Query fragt demnach nur die Teilnehmer ab, mit der Bedingung, dass der Teilnehmer.name mit dem Schueler.name übereinstimmt.

Lo!