Dobra nie będę się wtrącać :-) bo widzę że to nie mój poziom.
generalnie zaptanie z UNION nie udało mi się odpalić pewnie gdzieś popełniłem literówkę.
Zapytanie z gr. (nie wiem czy dobrze) ale trochę zmieniłem
SELECT * FROM `tabela` WHERE DATEDIFF(NOW(), `dataadd`) IN (0, 1, 2, 8, 31) GROUP BY DATEDIFF(NOW(), `dataadd`);
I wyświetlił mi dokładnie po jednym rekordzie z dnia.
Ale nie do końca o to mi chodziło...
Może źle się na początku wyraziłem.
Mam 2 tabele jedna trzyma tak jakby menu newsów -> 'dziesiaj' , 'wczoraj' , 'w tym tygodniu' , 'w tym miesiacu' , 'archiwum'
a w drugiej tabeli mam te newsy które są filtrowane po dacie.
Obie tabele nie są ze sobą powiązane.
i teraz najlepiej w jednym zapytaniu chce wyświetlić menu dla newsów.
SELECT * FROM kategoria WHERE kategory = 'news'
Co daje wynik:
'dzisiaj' , 'wczoraj' , 'w tym tygodniu' , 'w tym miesiącu' , 'archiwum'
I teraz bym chciał jeszcze w tym jednym zapytaniu aby pobrał po jednym z newsie dla każdej kategorii np tym wywołaniem co napisał
nevt, lekko zmienionym
SELECT * FROM `tabela` WHERE DATEDIFF(NOW(), `dataadd`) IN (0, 1, 2, 8, 31) GROUP BY DATEDIFF(NOW(), `dataadd`);
Ale podane przykłady zakładają że w danym dniu jest news
a generalnie kategorie odnoszą sie do dziś -> 0, wczoraj -> 1, w tym tygodniu -> od 2 do 7, w tym miesiącu -> od 8 do 31,
i archiwalne -> powyżej 31
Czy da rade jakoś wydajnie połączyć te zapytania?
Czy lepiej zrobić to w 2 zapytaniach i będzie wydajniej i lepiej...
Dzięki, za pomoc....