OriPL Opublikowano 19 Października 2012 Udostępnij Opublikowano 19 Października 2012 Witam ponownie GMClanowiczów, dawno mnie tu nie było :) ale nie rozpisując się mam pytanie: Mam 2 tabele w MYSQL: KLANY: CLAN_ID | CLAN_NAME | CLAN_TAG | CLAN_LOGO MECZE: MATCH_ID | MATCH_CLAN_A | MATCH_CLAN_B | MATCH_START | MATCH_END | I teraz potrzebuje do tego wymyslić zapytanie które wybierze z bazy wszystkie mecze oraz klany które w nich uczestniczną czyli przykładowym wynikiem będzie: Nazwa klanu A, Tag klanu A, Logo klanu A Nazwa klanu B, Tag klanu B, Logo klanu B Rozpoczecie meczu, Zakonczenie meczu Połączenie 1 do 1 jest proste ale to jest troche inne... bo chodzi o to że z tabelki MECZE wybieram 1 rekord, a z tabelki KLANY juz 2. Mam nadzieje ze wystarczająco to opisałem... Moje działania staneły na: $matches_query = mysql_query( "SELECT schedule_clans.clan_id, schedule_clans.clan_name, schedule_clans.clan_tag, schedule_matches.match_id, schedule_matches.match_clan_a, schedule_matches.match_clan_b, schedule_matches.match_start, schedule_matches.match_end FROM schedule_matches LEFT JOIN schedule_clans ON schedule_matches.match_clan_a = schedule_clans.clan_id "); Na hardcore oczywiscie mogl bym pobrac te dane a nastpenie je zlaczyc jakos w petli i tez by dzialalo, ale chcial bym to zrobic jakos ladnie :) i przy okazji sie czegos nauczyc :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 20 Października 2012 Udostępnij Opublikowano 20 Października 2012 Jeśli w tabeli mecze trzymasz identyfikatory do rekordów, możesz do tego użyć union. Pewnie można i na joinach, ale jeszcze ich dobrze nie znam Select id, mecz_start, mecz_stop from m.mecze Union select klan, tag from klany where id=m.klan_a union select klan, tag from klany where id=m.klan_b coś w tym stylu, głowy nie dam że działa Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
OriPL Opublikowano 20 Października 2012 Autor Udostępnij Opublikowano 20 Października 2012 Dziękuje za pomoc, jednak kod który podałeś nie spełniał moich oczekiwań, bo UNION łączy tabele o tych samych nazwach kolumn (musi byc ich tyle samo) co mnie nie pasowalo, drogą eksperymentów i przemyśleń doszedłem do rozwiązania: SELECT M.match_id, M.match_clan_a, M.match_clan_b, M.match_start, M.match_end, C.clan_id as clan_a_ID, C.clan_name as clan_a_name, C.clan_tag as clan_a_tag, C.clan_logo as clan_a_logo, CC.clan_id as clan_b_id, CC.clan_name as clan_b_name, CC.clan_tag as clan_b_tag, CC.clan_logo as clan_b_logo FROM schedule_matches M LEFT JOIN schedule_clans C ON M.match_clan_a = C.clan_id LEFT JOIN schedule_clans CC ON M.match_clan_b = CC.clan_id Czego wynikiem jest np: array 'match_id' => string '3' (length=1) 'match_clan_a' => string '1' (length=1) 'match_clan_b' => string '2' (length=1) 'match_start' => string '23423423' (length=8) 'match_end' => string '34234232' (length=8) 'clan_a_ID' => string '1' (length=1) 'clan_a_name' => string 'Klan Name 1' (length=22) 'clan_a_tag' => string 'Klan Tag 1' (length=11) 'clan_a_logo' => string '4fa14092c95b7b11c9230c28136c1746.png' (length=36) 'clan_b_id' => string '2' (length=1) 'clan_b_name' => string 'Klan Name 2' (length=12) 'clan_b_tag' => string 'Klan Tag 2' (length=9) 'clan_b_logo' => string 'f2c9e85b57cc18eafb59a5426fa9689d.jpg' (length=36) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się