Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyciągnięcie danych z tabeli wiele do wielu
RollDev
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 5.12.2015

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


Witam,
Dziś trafiłem na mały problem.
Mianowicie mam 3 tabele.
1:Arts
ID | name | size
2: artist
ID | name | years
3:
id | arts_id | artist_id

I mam pytanie. Jaki sposób będzie najbardziej optymalny, aby wyciągnąć te dane?
Idea wygląda tak, że:
Arts może mieć wiele artist i artist może mieć wiele art.

Chciałbym wyciągnać art i listę artist, który są przypisani do art'a

Ma ktoś jakieś pomyły?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


https://www.google.pl/search?q=mysql+many+to+many+select
Go to the top of the page
+Quote Post
RollDev
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 5.12.2015

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


Nie do końca właśnie @trueblue

Dostaje 2 rekordy, a chce jeden.
Dosjtae takie info:

arts.id | art.name | artist.name1
arts.id | art.name | artist.name2

a chciałbym

arts.id | art.name | artist.name1, artist.name2

INFO:
Mam jeden art, który jest przypisany do dwóch artist

Ten post edytował RollDev 7.07.2016, 13:07:29
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


To samo + https://www.google.pl/search?q=group_concat
Go to the top of the page
+Quote Post
RollDev
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 5.12.2015

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


tego mi brakowało szefie!

Jednak nie zadziałało, albo zle uzyłem.

  1. SELECT ar.name AS name,
  2. ar.size AS size,
  3. GROUP_CONCAT((SELECT at.name FROM artist at WHERE at.id = aa.art_id)) AS artist,
  4. FROM arts ar
  5. LEFT JOIN arts_artist aa
  6. ON aa.artist_id = ar.id
Go to the top of the page
+Quote Post
trueblue
post
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Zapytanie wygląda prawie tak samo jak zwykłe zapytanie bez groupowania.
Ale tu dodajesz GROUP_CONCAT na artist.name, a całe zapytanie ma być grupowane po arts.id (GROUP BY arts.id).
Bez żadnych dziwnych podzapytań.
Go to the top of the page
+Quote Post
RollDev
post
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 5.12.2015

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


Właśnie tak zrobiłem i faktycznie. Brakuje mi z deka wiedzy (IMG:style_emoticons/default/sad.gif)
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: 24.08.2025 - 04:18