Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Pomoc w ułożeniu zapytania, Subquery returns more than 1 row
creanout
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 10.08.2013

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


Hej, mam dwie tabelki filmy i aktorzy
Chcę wyświetlić wszystkie filmy + aktorów z danego filmu
Moje zapytanie wygląda tak:

  1. SELECT f.id, f.tytul, (SELECT aktor_imie, aktor_nazwisko FROM aktorzy WHERE aktor_film = m.id) FROM filmy AS f


Dostaję błąd: Subquery returns more than 1 row
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
pedro84
post
Post #2





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Odpowiedź: join.
Go to the top of the page
+Quote Post
creanout
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 10.08.2013

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


Cytat(pedro84 @ 10.08.2013, 22:14:51 ) *
Odpowiedź: join.


Tak, wiem, zwraca mi dwa razy rekord (bo dwóch aktorów) z filmem (tym samym) i nie mam pomysłów jak wyświetlić to w jednym divie... że np.
Tytuł filmu
- aktor 1
- aktor 2
Go to the top of the page
+Quote Post
MadMark
post
Post #4





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 12.07.2010

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


Jeśli mamy tabelki:
Aktorzy
ID | Imie | Nazwisko | Zagral_w_filmie
Filmy
ID | Tytul |Jakies_inne_info
To zapytanie:
  1. select distinct Imie, Nazwisko, Tytul from Aktorzy as a JOIN Filmy as f ON (f.ID = a.Zagral_w_filmie)


Rozwiązanie ubogie, bo powielasz imie i nazwisko w tabeli aktorzy dla każdego ID filmu.

Rozwiązanie bardziej "PRO" to trzecia tabela z dwoma polami (klucze obce) ID_Filmu | ID_Aktora. Wtedy jest łatwiej i do pewnego stopnia unikasz redundancji.
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:43