Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Mysql] - Jak ograniczyć 3 zapytania do 1 ?
jarekhunter
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 21.01.2010

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
kipero
post
Post #2





Grupa: Zarejestrowani
Postów: 233
Pomógł: 50
Dołączył: 28.10.2006
Skąd: Radom

Ostrzeżenie: (0%)
-----


Poczytaj o UNION SELECT
Go to the top of the page
+Quote Post
jarekhunter
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 21.01.2010

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
kefirek
post
Post #4





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


  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
Go to the top of the page
+Quote Post
jarekhunter
post
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 21.01.2010

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 21:49