Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Mysql] - Jak ograniczyć 3 zapytania do 1 ?
Forum PHP.pl > Forum > Przedszkole
jarekhunter
Witam wszystkich, jestem tutaj nowy więc proszę o wyrozumiałość.

Mam tabelkę z kolumnami, w niej jest również kolumna typ, który przyjmuję odpowiednio wartości 0,1,2

Muszę pobrać dane z tabeli ale w taki sposób:

  1. `przedmiot`
  2. ----------------------
  3. | ID | Nazwa | Typ |
  4. ----------------------
  5. | 1 | Test1.. | 0 |
  6. | 2 | Test2.. | 0 |
  7. | 3 | Test3.. | 0 |
  8. | 4 | Test4.. | 0 |
  9. | 5 | Test5.. | 0 |
  10. | 6 | Test6.. | 1 |
  11. | 7 | Test7.. | 1 |
  12. | 8 | Test8.. | 1 |
  13. | 9 | Test9.. | 1 |
  14. | 10 | Test10. | 1 |
  15. | 11 | Test11. | 1 |
  16. | 12 | Test12. | 2 |
  17. | 13 | Test13. | 2 |
  18. | 14 | Test14. | 2 |
  19. ----------------------


Chce mieć z każdego typu np. po 4 recordy lub po 6.
Jak bym zapytanie ustawił w taki sposób
  1. SELECT * FROM `przedmiot` ORDER BY `typ` LIMIT 4;


To dostane tylko 4 rekordy a chce mieć z każdego po 4, ich oczywiście w bazie jest więcej i danych jest więcej ale dla przykładu coś takiego wystarczy.
Czy pozostaje mi 3 zapytania kolejno, czy może 1 zapytanie z 3 podzapytaniami.
Można też wczytać wszystko i w php podzielić ale to nie potrzebnie tylko bazę obciąża dlatego chciał bym ograniczyć się do zapytania i nie pobierać więcej danych niż mi są potrzebne.

Jak wy byście to rozwiązali.

Dziękuję serdecznie za pomoc.
kipero
Poczytaj o UNION SELECT
jarekhunter
Czyli w moim przypadku zda sprawę union all, ale teraz pytanie każde union występuję po form podobnie jak join, w takim razie pytanie mam jak do takiego zapytania dodać limit do każdego union z kolei, proszę o jakiś prosty przykład..

Dziękuję bardzo za pomoc.
kefirek
  1. SELECT * FOMR (
  2. SELECT * FROM przedmiot WHERE typ=0 LIMIT 4
  3. UNION ALL
  4. SELECT * FROM przedmiot WHERE typ=1 LIMIT 4
  5. UNION ALL
  6. SELECT * FROM przedmiot WHERE typ=2 LIMIT 4
  7. ) AS tabela
jarekhunter
praktycznie wszystko już wiem z resztą sobie powinienem poradzić, jeśli będę miał jeszcze problem w tej kwestii to będę was pytał.

Dziękuję serdecznie za pomoc.
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.