Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SELECT na trzech tabelach
Forum PHP.pl > Forum > Bazy danych > MySQL
Max Damage
Cześć, mam takie tabele:
1. ksiazki:
id | tytul | itd.
3 | t1
12 | t2

2.ksiazki_autor:
id_ksiazki | id_autor
3 | 2
3 | 3
3 | 4

3.autorzy:
id | autor
2 | kowalski
3 | nowak
4 | jakiś tam

Na podstawie id ksiązki chcę wyciągnąć jej autorów, a także wszystkie informacje o niej. Zrobiłem takie zapytanie, ale jak mam 3 autorów ksiązki to wyciąga mi 3 razy jej dane:
  1. SELECT * FROM ksiazki JOIN (SELECT * FROM ksiazki_autor WHERE id_ksiazki='".$id."') AS abc ON ksiazki.id = abc.id_ksiazki JOIN autorzy ON autorzy.id = abc.id_autor
darko
select distinct * (...) nie pomaga ?
phpion
@darko:
Nie zajarzyłeś "problemu".

@Max Damage:
Robiąc złączenia tabel zawsze dostaniesz nadmiarowej ilości danych. Po stronie PHP musisz sobie wyświetlić informacje o książce tylko raz, a jej autorów X razy (tyle ilu ich jest). Oczywiście możesz rozbić to na 2 zapytania: 1 pobierające info o książce i 2 pobierające jej autorów. Kwestia aktualnej potrzeby.
Max Damage
Miałem po prostu nadzieje, że da się to wyciągnąć jednym zapytaniem. Zrobienie większej ilości zapytań to żadna sztuka. No ale może masz rację i inaczej się tego napisać nie da, a szkoda.
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.