Mój problem dotyczy już rozwiązanego problemu Pytanie, ale po prostu nie mogę go uruchomić.
Mam więc to zapytanie, które powinno filtrować najpierw dla kolumny „typ”, a następnie dla najmniejszego znacznika czasu w kolumnie „lastChange”. Znaczniki czasu będą często aktualizowane.
SELECT * FROM api
WHERE (type = "Public") AND (lastChange = ( SELECT MIN(lastChange) FROM api ));
Wygląda na to, że filtruje wartości, ponieważ gdy dojdę do wiersza zawierającego typ = „Prywatny” wynik będzie pusty.
type != "Public" // doesn"t work either, because I have more than two values
Ale czy zapytanie nie powinno pomijać wszystkich wierszy, które nie zawierają typu = „Publiczne” i zwracają tylko te z wynikiem pozytywnym - jak mogę to właściwie zrobić?
Odpowiedzi:
1 dla odpowiedzi № 1Twój SELECT po prawej stronie do LastChange zwraca jedną minimalną wartość dla wszystkich rekordów, ale potrzebujesz wartości MIN tylko dla typu publicznego, musisz ją podać w zapytaniu.
SELECT * FROM api
WHERE (type = "Public")
AND (lastChange = (
SELECT MIN(lastChange)
FROM api AS t2
WHERE t2.type = "Public"
)
);