Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wiele do wielu, problem z pobraniem wszystkich danych
basurman
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 27.02.2005

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


Używając relację wiele do wielu, np.
ksiazka(idKsiazki primary key, tytul, ...)
autor(idAutora primary key, imie, nazwisko, ...)
autor_ksiazka(idAutora foreign key, idKsiazki foreign key)
jako rozwiązanie problemu:jedna książka -> wielu autorów,
jeden autor -> wiele książek.
Moja baza wymaga (wg mnie) takiej konstrukcji,
a o ile wyszukiwanie wg dowolnego parametru nie sprawia tu żadych
problemów,
to wyświetlenie wszystkich książek wraz z autorami jest chyba niemożliwe
za pomocą jednego zapytania (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
A nawet z użyciem kilu zapytań będzie kłopotliwe - jak się to robi (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
ZAZNACZAM, ŻE INTERESUJE MNIE ROZWIĄZANIE GDZIE W WYNIKU
ZAPYTANIA DLA KAŻDEJ KSIĄŻKI OTRZYMAM TYLKO JEDEN REKORD


Do tej pory 'załatwiałem' to w ten sposób, że w tabeli dawałem pola typu
enum('Tak', 'Nie') dla kryterium
'zastosowanie' - gdzie jeden model może mieć zarówno jedno, jak i np. 6
różnych zastosowań.
To nawet do pewnego stopnie załatwiało sprawę - x kolumn enum('Tak',
'Nie') o nazwie takiej jak zastosowanie.
Załatwiało do czasu kiedy okazało się, że nie znam pełnej listy
zastosowań, i odkrycie każdego nowego
wiązało by się z modyfikacją struktury bazy
a co za tym idzie - wszystkich skryptów.


Ten post edytował basurman 27.02.2005, 22:07:53
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
basurman
post
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 27.02.2005

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


nie jestem teraz w stanie przetestować twojego zapytania gdaq,
ale o ile pamięć mnie nie myli to w jego wyniku dla książki,
która ma 2 autorów otrzymam 2 rekordy o tym samym egzemplarzu
1. imie1 nazwisko1 tytuł 366
2. imie2 nazwisko2 tytuł 366

niech mnie ktoś poprawi bo częściej używam OUTER JOIN i być może
INNER daje wynik o jaki mi chodzi, czyli coś w rodzaju:

imie1 nazwisko1 imie2 nazwisko2 tytuł 366

Ten post edytował basurman 28.02.2005, 00:06:03
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.09.2025 - 20:13