Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Łaczenie wyników - dwie tabele - dobre praktyki
Sokon
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 29.10.2008

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


Sytuacja wygląda następująco, dużo czytałem o tym jak się nie powinno robić ale nigdzie jak się powinno.

Przykładowo mam dwie tabele:
1. Kliniki
2. Usługi

Tabela kliniki ma PK o nazwie klinikaId
Tabela usługi ma FK do tabeli kliniki o nazwie klinikaId

Jedna klinika ma w ofercie wiele usług jak pobrać poprawnie dane z obu tabel żeby nie zagnieżdżać zapytania w zapytaniu w taki sposób (będę pisał skrótami):
  1. <?php
  2. $zapytanie1 = mysql_query( 'SELECT * FROM `kliniki`' );
  3. while( $wynik1 = mysql_fetch_array( $zapytanie1 ) ) {
  4. echo 'wyniki zapytania o kliniki';
  5. $zapytanie2 = mysql_query( 'SELECT * FROM `usługi` WHERE `klinikaId`='.$wynik1['klinikaId'].'' );
  6. while( $wynik2 = mysql_fetch_array( $zapytanie2 ) ) {
  7. echo 'wyniki zapytania o usługi';
  8. }
  9. }
  10. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sokon
post
Post #2





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 29.10.2008

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


Ok, napiszę bardziej precyzyjnie. Czy da się zapytać tak aby pod wynikiem danej kliniki mieć wy listowane jej usługi:
Klinika 1
Usługa 1
Usługa 3
Usługa 5

Klinika 2
Usługa 1
Usługa 2
Usługa 3

Klinika 3
Usługa 1
Usługa 2
Usługa 3

I tak dalej, usługi są pobierane ze słownika.

O ile znam JOIN, to mogę albo dostać iloczyn kartezjański nie stosując GROUP BY albo mogę mogę użyć GROUP BY po id kliniki i nie dostać pełnej listy usług.
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: 4.10.2025 - 03:06