![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 6 Dołączył: 2.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam 3 tabele, news, categories, news_to_categories. Chciałem pobrać news i kategorie dla danego wpisu w taki sposób:
Tylko w przypadku gdy do news przypisane są 3 kategorie to są zwracane mi 3 rekordy z takimi samymi kolumnami tylko innymi kategoriami. Czy da się stworzyć takie zapytanie żeby wszystko było zwrócone w jednym rekordzie? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 12 Dołączył: 23.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Najpierw pobierasz wszystkie newsy, wyodrębniasz id tych newsów w pętli. Następnie poza pętla budujesz zapytanie SQL z wyodrębnionych danych.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
(miałem coś skomentować, ale sobie daruję)
Co do problemu Siner, to niestety ale wiersz by musiał nie być rekordem, a obiektem... Chyba że się robi inne triki, ale to tylko w szczególnych przypadkach. Np. jak do News'a potrzebujesz string'a z nazwami kategorii oddzielonymi przecinkami, bo da się to zrobić jednym zapytaniem, ale jak potrzebujesz wszystkich danych to jest już problem, bo nie da się tego "ładnie" zrobić. (ORM to robi, ale to dla każdego News'a pobiera jego kategorie, więc jest n+1 zapytań do bazy (n - liczba news'ów) P.S. Przeczytałem jeszcze raz pierwszego posta w temacie, więc moim zdaniem użyć 2 kwerend... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 20:24 |