Ich habe eine Tabelle mit einem Feld User. Der User ist in dem Fall eine Nummer (Integer). Dazu noch ein Kotrollfeld. Das kann für mehrere User gleich sein.
Ich möchte nun abfragen, ob es einen Datensatz zu einer bestimmten Usernummer gibt. Da aber auch die 0 vergeben werden kann, soll da eine Unterscheidung erfolgen.
Ich möchte also eine Abfrage haben, die nach dem control Feld und der UserId sucht.
SELECT ..... FROM ...... WHERE control = 1 AND (userID = 2 OR userUD = 0)
soweit so gut. Aber ich möchte nur den Datensatz haben, der mit der Nummer übereinstimmt und nur wenn das nicht passt den mit userID 0
In der DB steht es so
control userID
1 2
1 0
Meine obige Abfrage bringt beide DS als Ergebnis. Ich möchte aber nur den, bei dem die userID direkt passt, nur wenn die userID nicht passt, soll er den mit 0 ausgeben und wenn es den auch nicht gibt, soll nix zurückkommen.
Ich hoffe, ich konnte mich verständlich machen. Aber wie löse ich das?
Ich möchte nun abfragen, ob es einen Datensatz zu einer bestimmten Usernummer gibt. Da aber auch die 0 vergeben werden kann, soll da eine Unterscheidung erfolgen.
Ich möchte also eine Abfrage haben, die nach dem control Feld und der UserId sucht.
SELECT ..... FROM ...... WHERE control = 1 AND (userID = 2 OR userUD = 0)
soweit so gut. Aber ich möchte nur den Datensatz haben, der mit der Nummer übereinstimmt und nur wenn das nicht passt den mit userID 0
In der DB steht es so
control userID
1 2
1 0
Meine obige Abfrage bringt beide DS als Ergebnis. Ich möchte aber nur den, bei dem die userID direkt passt, nur wenn die userID nicht passt, soll er den mit 0 ausgeben und wenn es den auch nicht gibt, soll nix zurückkommen.
Ich hoffe, ich konnte mich verständlich machen. Aber wie löse ich das?
Kommentar