Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wybieranie pewnej ilości pól według każdej wartości jednej kolumny
Forum PHP.pl > Forum > Bazy danych > MySQL
krzmig
Na wstępie chciał bym zaznaczyć, że szukałem rozwiązania ale niestety nie znalazłem. Nie wiem też czy tytuł jest dobry więc w razie czego proszę o poprawkę ;]

A więc mam tabelę z newsami, a w niej między innymi pole: typ_newsa. I potrzebuję wybrać z tej tabeli po 10 najnowszych newsów z każdej wartości pola typ_newsa. Czy istnieje możliwość wybrania tego wszystkiego w jednym zapytaniu czy nie obejdzie się bez wielu zapytań?
Kethrax
Cytat(krzmig @ 14.05.2008, 21:36:08 ) *
A więc mam tabelę z newsami, a w niej między innymi pole: typ_newsa. I potrzebuję wybrać z tej tabeli po 10 najnowszych newsów z każdej wartości pola typ_newsa. Czy istnieje możliwość wybrania tego wszystkiego w jednym zapytaniu czy nie obejdzie się bez wielu zapytań?


Według mnie potrzebujesz tyle zapytań ile jest typów news'ów, a więc:
  1. SELECT * FROM News WHERE typ_newsa = jakiś_typ ORDER BY data_dodania LIMIT 0, 10;
krzmig
Dzięki za chęci ale wiem że można to rozwiązać w taki sposób i w taki sposób już to zrobiłem. Jednak z ciekawości chciał bym wiedzieć czy da się to rozwiązać w jednym zapytaniu i ewentualnie czy jest to bardziej optymalne od wielu zapytań.
Kethrax
Jeszcze mozesz sprbowac zrobic widoki dla kazdej kategorii newsow, wtedy forma zapytania ograniczy sie do
  1. SELECT * FROM nazwa_widoku;
krzmig
Teoretycznie mógł bym to zrobić na widokach ale typy newsów mają być zarządzane z pliku config.php, wtedy użytkownik jeśli by dodał jakiś typ musiał by też utworzyć do niego widok. Oczywiście można zrobić to przez php ale wydaje mi się że lepszym rozwiązaniem jest pętla która przechodzi tyle razy, ile jest typów w configu, w środku jest zapytanie do bazy wybierające tylko newsy z danego typu. Tak czy inaczej będzie to wykonywane tylko w przypadku jakiś zmian w newsach, w pozostałych przypadkach będę to pobierał z pliku tmp.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.