bei SQL bestimmte Werte ausschließen

xSkyLorDx

Cadet 4th Year
Registriert
Juni 2023
Beiträge
104
Hallo,

mit welcher Formel kann ich bestimmte Werte in SQL ausschließen?

Ich komme da bei SQL aktuell grade nicht weiter

Ich habe eine Tabelle mit mehreren hundert Ergebnissen besteht da soll er den Wert 1 von Tabelle 3 komplett bei den Ergebnissen ausschließen

Wie könnte ich das machen?
 
Moin,

zeig doch mal ein Beispiel und das, was du erreichen willst.

Ansonsten generell: select * from table where value <> 'wert'
 
Sorry aber bei der Fragestellung weiß ich echt nicht was du genau willst. Du redest von einer Tabelle mit 100 Ergebnissen, dann kommt noch ne Tabelle 3 ins Spiel? Meinst du Spalte 3?

Am besten skizzierst du ne schematische Tabelle wie es genau aussieht.
 
  • Gefällt mir
Reaktionen: Oelepoeto
select T1.Wert 1 ,T2.Wert 2 from Tabelle1 T1, Tabelle2 T2, Tabelle3 T3
where T1.Wert1 = T2.Wert1
and T2. Wert 2 = '0'

Das funktioniert soweit ohne Tabelle 3

Jetzt soll der Wert 1 der auch in der Tabelle 3 vorhanden ist in der kompletten anzeige rausgenommen werden

Also Wenn Wert 1 in Tabelle 3 vorhanden ist dann soll das dann nicht mehr als Ergebnis angezeigt werden
 
Das ist aber nicht so schön geschrieben. Wenn mehrere Tabellen benötigt werden solltest du mit Join oder Union (All) arbeiten. Siehe Dokumentation deines DB-Systems.
 
  • Gefällt mir
Reaktionen: up.whatever
Das sollte mit where t1.wert1 not in (select wert3 from tabelle3) möglicher sein, dazu musst du tabelle 3 nicht mit ranjoinen, denn du willst von ihr ja keine Spalte anzeigen.
 
  • Gefällt mir
Reaktionen: =dantE=
Schau dir aber trotzdem Joins an, so wie du die Tabellen verknüpfst sollte man nicht arbeiten.
 
Ein Join über Where ist schon legitim, ebenso der jetzt vorgeschlagenen Sub-Select.

Wenn es hier ein Problem gab, dann das grundlegende Verständnis, die schwache Fragestellung (Ausgangszustand, Zielzustand, Lösungsansatz) und natürlich, dass hier bei der ersten Darstellung Tabelle 3 einfach als Kreuzprodukt in die Erzeugung geworfen wurde.
Ergänzung ()

@xSkyLorDx technisch ist ein implizierter Join im Where kein Problem.

Allerdings hat man man einem explizitem Join nicht nur weitere Möglichkeiten die im Where sehr viel Komplizierter werden. Es ist auch einfacher Lesbar, welche Informationen zum Zusammenführen der Tabellen genutzt werden und welche zum Einschränken der Datensätze.
 
  • Gefällt mir
Reaktionen: =dantE= und Oelepoeto
@xSkyLorDx , im Prinzip genau das, was @Keylan beschreibt. Was du machst sind "old-style joins", die, wie der Name sagt, als veraltet gelten. Sie sind schwer leserlich, wenig flexibel, und nicht optimierbar im Sinne von Performance-Tuning.
Ich weiß natürlich nicht, wofür du dein SQL benötigst, aber sobald es Richtung irgendeine Anwendung oder auch nur Schulaufgabe geht sollten m.M.n. gängige Regeln eingehalten werden. Wenn es für deine Zwecke reicht, dann passt eh alles, wollte nur darauf hinweisen, dass Joins eigentlich anders gehen.
 
Wir nutzen den SQL Befehl auf der Arbeit um einmal das Ergebnis anzeigen zu lassen

Für unseren Zweck reicht das und das Ergebnis wird ohne Verzögerung angezeigt
 
Nimm's bitte nicht persönlich, aber ich kann immer nur den Kopf schütteln, wenn ich so was lese.
"Ich brauch das nur für die Arbeit, ich muss das nicht verstehen/lernen"

"Wir machen das nur für die Arbeit. Wir denken jetzt lieber nicht drüber nach was passiert wenn das in einen Jahr mal angepasst werden muss und keiner weis wie das geht, oder auch nur vorhersehen konnte, dass das auf einmal nicht mehr geht.
Aber bis dahin ist das Total wichtig und unser Tagesgeschäft hängt davon ab, weil das ja bisher immer Funktioniert hat."

IT-Infrastruktur und dazu gehören Datenbanken und Datenbankabfragen, müssen gewartet werden. Irgendjemand muss dafür den Hut (die Verantwortung) aufhaben und entweder das Know-How haben wie damit umzugehen ist, oder das Budget und den Kontakt zum Dienstleister haben um angemessen auf Probleme reagieren zu können.
Und so eine SQL Abfrage sollte jeder der eine IT Ausbildung (Fachausbildung oder Studium) gemacht hat beherrschen. Es kann also keine überwältigende Herausforderung sein jemanden mit solchem Wissen im Unternehmen zu finden, einzustellen oder als Dienstleister im Kontakt zu halten.

Ich war bisher davon ausgegangen, dass du hier eine Antwort zum lernen erhofft hattest. Deshalb auch der Link zur Quelle mit umfangreicher Dokumentation in meinem letzten Post.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Oelepoeto
Zurück
Oben