Heyho zusammen,
lässt sich diese Abfrage:
ohne Unterabfrage schreiben?
Meine Tabelle dazu sieht so aus:
Mit der Abfrage möchte ich alle Ids ehralten, die sowohl unter "value1=10 AND (value2=11 or value2=12)" existieren aber auch gleichzeitig unter "value1=15" existieren. Eine Id soll also nur ausgewählt werden, wenn beide Abfragen richtig sind.
Also würde man sie so verknüpfen:
Das liefert jedoch immer ein leeres Resultat zurück, da ich ja sage "Wähle diejenigen Datensätze aus, die sowohl value1=10 haben und value1=15".
Ich brauche aber viel mehr das:
"Wähle diejenigen Datensätze aus, die sowohl in der Datenbank mit dem Wert value1=10 existieren und mit dem Wert value1=15 und die gleichzeitig noch dieselbe ID haben".
In meinem Beispiel sollen also nur folgende Werte ausgewählt werden:
Kriegt man die obere Abfrage ohne Unterabfrage hin?
lässt sich diese Abfrage:
PHP Code:
SELECT *
FROM items,
(
SELECT id
FROM items
WHERE
(
value1=10 AND (value2=11 or value2=12)
)
) as filtered
WHERE filtered.id=items.id AND value1=15
Meine Tabelle dazu sieht so aus:
Code:
id value1 value2 0 1 10 0 4 10 0 5 15 0 15 20 0 10 11 1 15 18 1 2 20 1 3 11 1 6 12
Also würde man sie so verknüpfen:
PHP Code:
value1=10 AND (value2=11 or value2=12) AND value1=15
Ich brauche aber viel mehr das:
"Wähle diejenigen Datensätze aus, die sowohl in der Datenbank mit dem Wert value1=10 existieren und mit dem Wert value1=15 und die gleichzeitig noch dieselbe ID haben".
In meinem Beispiel sollen also nur folgende Werte ausgewählt werden:
Code:
id value1 value2 0 15 20 0 10 11