Query, stehe auf Leitung

Query, stehe auf Leitung

am 21.09.2006 09:42:45 von Marcel Hubmann

Hallo,

Ich hab ein großes Problem, da ich anscheinend auf der Leitung stehe :-(

Ich hab eine Tabelle mit folgenden Spalten:
id,name,geloescht,reserviert

Ich möchte alle Datensätze auslesen, die folgendes beinhalten:
Der Name muss 'irgendwas' lauten
Es dürfen nur geloescht = 0 angezeigt werden
Es dürfen aber, wenn geloescht und reserviert = 1 Daten angezeigt werden

Also, wie komme ich da zu einer Query?
SELECT id,name
FROM tabelle
WHERE (name = 'irgendwas') AND ???

also von dieser Tabelle:
id name geloescht reserviert
-- ---- --------- ----------
1 irgendwas 0 0
2 irgendwas 1 0
3 irgendwas 1 1
4 blabla 0 0
5 blabl 1 0
6 blabla 1 1

sollten folgende Datensätzen angezeigt werden:
1,3,4,6
2 und 5 sind geloescht und dürfen nicht ausgegeben werde.


Kann mir jemand bei der Formulierung helfen, denn ich stehe komplett auf
der Leitung!

Vielen Dank,
Marcel

Re: Query, stehe auf Leitung

am 21.09.2006 10:13:48 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: Query, stehe auf Leitung

am 21.09.2006 10:14:38 von Christian Kirsch

Marcel Hubmann schrieb:
> Hallo,
>
> Ich hab ein großes Problem, da ich anscheinend auf der Leitung stehe :-(
>
> Ich hab eine Tabelle mit folgenden Spalten:
> id,name,geloescht,reserviert
>
> Ich möchte alle Datensätze auslesen, die folgendes beinhalten:
> Der Name muss 'irgendwas' lauten
> Es dürfen nur geloescht = 0 angezeigt werden
> Es dürfen aber, wenn geloescht und reserviert = 1 Daten angezeigt werden
>
> Also, wie komme ich da zu einer Query?
> SELECT id,name
> FROM tabelle
> WHERE (name = 'irgendwas') AND ???

(geloescht = 0 or (geloescht = 1 and reserviert=1))

oder so

>
> also von dieser Tabelle:
> id name geloescht reserviert
> -- ---- --------- ----------
> 1 irgendwas 0 0
> 2 irgendwas 1 0
> 3 irgendwas 1 1
> 4 blabla 0 0
> 5 blabl 1 0
> 6 blabla 1 1
>
> sollten folgende Datensätzen angezeigt werden:
> 1,3,4,6
> 2 und 5 sind geloescht und dürfen nicht ausgegeben werde.
>

Verstehe ich nicht. 4 und 6 haben name != 'irgendwas', folglich ist
schon die erste Bedingung verletzt. Was nun?

Re: Query, stehe auf Leitung

am 21.09.2006 11:03:20 von Thomas Rachel

Christian Kirsch wrote:


> (geloescht = 0 or (geloescht = 1 and reserviert=1))
>
> oder so

kompakter vielleicht:

(geloescht = 0 or reserviert=1)


Thomas
--
C: Ich möchte nicht länger "Junge" genannt werden. Ich finde
den Ausdruck demütigend und sexistisch.
H: Wie möchtest Du dann genannt werden? [aus "Calvin and Hobbes"
C: "Genetisch bevorzugter Jugendlicher". by Watterson]