Hi,
id|a |target|c |d |status 1 |rot |blau |gelb |lemon |1 // fällt weg, weil status = 1 2 |bmw |merc |audi |tesla |0 3 |eiche|ahorn |buche |bambus|1 // fällt weg, weil status = 1 4 |stahl|gold |silber |platin|1 // fällt weg, weil status = 1 5 |rubin|saphir|smaragd|opal |0 // fällt weg, weil target gleich wie anderer Eintrag mit status = 1 6 |rubin|ahorn2|rubin |rubin |0 7 |rubin|gold |rubin |rubin |0 // fällt weg, weil target gleich wie anderer Eintrag mit status = 1
Was ist der einfachste Weg alle anzuzeigen deren status != 1 ist aber auch nicht die, deren target-Eintrag denen vom status 1 entspricht?
also erstmal die targets für Status = 1 ermitteln:
SELECT DISTINCT target FROM tabelle WHERE status = 1
Und jetzt die, die Status != 1 haben, und ein target, das nicht in der Ergebnismenge des 1. Statements ist:
SELECT * FROM tabelle WHERE status != 1 AND target NOT IN (
SELECT DISTINCT target FROM tabelle WHERE status = 1
)
cu,
Andreas a/k/a MudGuard