Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#6

AW: SQL-Ausdruck gibt zu wenige DS zurück

  Alt 4. Mär 2017, 23:16
Werde Dein SQL mal etwas abkürzen unter der Voraussetzung, dass es mindestens einen Satz mit UserID 1 gibt.
SQL-Code:
select * from WERTE
where (UserID = 1)
or (UserID = 0 and not exists(True))
Also Du fragst quasi ab, ob es einen Satz mit der UserID 1 gibt oder einen Satz mit UserID = 0 und nicht "wahr"

Entspricht ungefähr:
Code:
or (1 = 1 and not true) -> or (1 = 1 and false) -> or (true and false)
Bitte formuliere nochmal deine Aufgabenstellung genau aus, sie ist im ersten Post noch etwas "unscharf". Dann teile sie erstmal in die beiden Teile auf, die (vermutlich) dahinter stecken.

Den zweiten Teil müsstest Du dann in den "not exists"-Teil einfügen können. Dabei ist aber wesentlich, dass in der Where-Bedingung des zweiten Teiles auf den ersten Teil über irgendeinen Schlüssel verwiesen wird. Ohne diesen Verweis ist die Wherebedingung (wie momentan) so "unscharf", dass sie immer erfüllt ist und nicht nur für den konkret abzufragenden Datensatz. Oder anders formuliert: Momentan ist die not-exists-Klausel so unscharf, dass man sie auch getrost weglassen könnte, ohne dass sich das Ergebnis verändert.
  Mit Zitat antworten Zitat