![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: ZEOS
Select mit Unterabfrage??
Hallo Leute,
ich brauch schon wieder mal Hilfe. Ich möchte aus einer Tabelle "sportler" alle Sportler anzeigen lassen, und bei jedem Sportler der an einer bestimmten Veranstaltung teilnimmt, das Feld "teilnehmen" mit Ja füllen. So in der Art: Zeig mir alle Teilnehmer Wenn ein Teilnehmer an Veranstaltung 2 teilnimmt, zeig mir im Feld Teilnehmen Ja.
Delphi-Quellcode:
Soweit habe ich das schon, das er alle Sportler anzeigt und wenn ein Wert in Tabelle
SELECT * FROM team t
INNER JOIN team_sportler ts ON t.TID = ts.TID INNER JOIN sportler s ON ts.SID = s.SID Right OUTER JOIN sportler_event se ON se.sid = s.sid INNER JOIN event e ON e.eid = se.eid "event_sportler" vorhanden ist das er den auch mit anzeigt. Nur, wie mach ich das jetzt, das er halt nur die Werte von "event_sportler" anzeigt, wenn der Wert von Feld "eid" in "event_sportler" z.B. 2 ist. Kann man das mit einer Abfrage lösen? Oder muss ich da was in Delphi schreiben? Dank schon mal im Voraus Gruß TankWart |
Re: Select mit Unterabfrage??
Hallo,
puh, machst du das kompliziert ;) Zuerst mal, weg mit dem Select * das macht das alles viel zu unübersichtlich Was du hier nehmen solltest, sind subselects und unions. Bsp (ohne jetzt deine Felder nud Tabellen zu benutzen)
SQL-Code:
Erklärung
Select S1.Name, 1 as Teilnehmen
From Sportler S1 where S1.SportlerId not in (select S2.SportlerId From Sportler S2 join SportlerEvent on SportlerEvent.SportlerId=S2.SportlerId where SportlerEvent.EventId=2) Union All Select S1.Name, 2 as Teilnehmen From Sportler S1 where S1.SportlerId in (select S2.SportlerId From Sportler S2 join SportlerEvent on SportlerEvent.SportlerId=S2.SportlerId where SportlerEvent.EventId=2) Die erste Query ermittelt alle Sportler, die nicht (Not In) in Event 2 sind. Das 1 as Teilnehmen erzeugt, erzuegt einfach die Zahl1. Die zweite Query zeigt genau die anderen Sportler an, die in Event2 waren. Das Union All verknüpft beide Abfragen. Es wird die Summe zurückgliefert. Heiko PS: Bei Fragen bitte zuerst mal eine ordentliche Tabellenbeschreibung. |
Re: Select mit Unterabfrage??
Danke Hoika,
das war genau das was ich gebraucht habe. mfg TankWart :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz