Autor | Zpráva | ||
---|---|---|---|
table Profil * |
#1 · Zasláno: 3. 9. 2013, 18:31:12 · Upravil/a: table
Dobrý den,
jsem tu opět z dotazem ze kterým si marně lámu hlavu. Mám tento dotaz do db: <?php } $query="SELECT confid,Name,z.nazev AS Teamname,Team,Pos,P,G,A,GP,Time,Pims,plusminus,PPG,SHG,Shoot,Hits,ID FROM `playerstat` p LEFT JOIN zkratky z ON p.Team=z.zkratka WHERE confid=$confid AND Pos='Player'"; If(!Empty($_GET['tym']) && $_GET['tym']!='*') $query.="AND z.nazev='".mysql_real_escape_string($_GET['tym'])."' "; $query.="ORDER BY $sort_order "; $result = mysql_query($query) or die(Mysql_error()); While($results=MySQL_Fetch_Assoc($result)) { $teams[]=$results; $cas=number_format($results['Time']/60,2); ?> Potřeboval bych to propojit ještě z tabulkou roster kde je ona zkratka týmu (sloupec Team) a také sloupec národnost. Takže potřebuji vypsat ze tabulky playerstat data týmu kde se celý název týmu vytáhne z tabulky zkratky a z tabulky roster se pomocí zkratky vytáhne národnost. Pomohl by mi někdo s takto složitým dotazem? Děkuji Tak dotaz bych asi měl: SELECT confid, Name, z.nazev AS Teamname, Team, Pos, P, G, A, GP, Time, Pims, plusminus, PPG, SHG, Shoot, Hits, Pos1 FROM `playerstat` p LEFT JOIN zkratky z ON p.Team = z.zkratka LEFT JOIN NHL_Roster1 ON Team = Team1 WHERE confid =3 AND Pos = 'Player' AND Team = 'KVA' Teď bych potřeboval ještě přidat AND Name=sloupce z tabulky roster ovšem tam je jméno ve dvou sloupcích Fname a Lname jde nějak v sql dotazu spojit dva sloupce? Dotaz by měl být asi takto nějak SELECT confid, Name, z.nazev AS Teamname, Team, Pos, P, G, A, GP, Time, Pims, plusminus, PPG, SHG, Shoot, Hits, Pos1 FROM `playerstat` p LEFT JOIN zkratky z ON p.Team = z.zkratka LEFT JOIN NHL_Roster1 ON Team = Team1 AND Name = Fname(druhý sloupec)Lname WHERE confid =3 AND Pos = 'Player' AND Team = 'KVA' |
||
tiso Profil |
#2 · Zasláno: 3. 9. 2013, 18:49:53
nejak takto:
SELECT ..., narodnost FROM `playerstat` p LEFT JOIN zkratky z ON p.Team=z.zkratka JOIN roster r ON p.Team=r.xyz WHERE ...; za narodnost a xyz si dosaď správne názvy stĺpcov
|
||
table Profil * |
#3 · Zasláno: 3. 9. 2013, 18:55:06
[#2] tiso
Ano tak nějak jsem to udělal, teď řeším druhý problém zde popsaný. |
||
tiso Profil |
#4 · Zasláno: 3. 9. 2013, 19:09:12
AND Name = CONCAT(Fname, Lname) |
||
table Profil * |
#5 · Zasláno: 3. 9. 2013, 19:28:56
Tak nyní to mám takto, a vrací mi to v POS1 (tabulka NHL_Roster) nulovou hodnotu
SELECT confid, Name, z.nazev AS Teamname, Team, Pos, P, G, A, GP, Time, Pims, plusminus, PPG, SHG, Shoot, Hits, Pos1 FROM `playerstat` p LEFT JOIN zkratky z ON p.Team = z.zkratka LEFT JOIN NHL_Roster1 ON Team = Team1 AND Name = CONCAT( Fname1, Lname1 ) WHERE confid =80 AND Pos = 'Player' Když to dám takto: SELECT confid, Name, z.nazev AS Teamname, Team, Pos, P, G, A, GP, Time, Pims, plusminus, PPG, SHG, Shoot, Hits, Pos1 FROM `playerstat` p LEFT JOIN zkratky z ON p.Team = z.zkratka LEFT JOIN NHL_Roster1 ON Team = Team1 WHERE confid =80 AND Pos = 'Player' |
||
Kajman Profil |
table:
„ten samý řádek se vypíše 26x“ A není to tím, že ten tým má v tabulce NHL_Roster1 26 hráčů? Tedy stále stejná chyba, kdy chybí podmínka na propojení jen s tím jedným správným hráčem? „CONCAT( Fname1, Lname1 )“ Ve sloupci Name je spojené jméno a příjmení a mezi tím není mezera? |
||
table Profil * |
#7 · Zasláno: 3. 9. 2013, 19:58:46
je tam mezera
|
||
Kajman Profil |
#8 · Zasláno: 3. 9. 2013, 20:00:03
Zkuste jedno z tohoto
CONCAT( Fname1, ' ', Lname1 ) CONCAT_WS( ' ', Fname1, Lname1 ) |
||
table Profil * |
#9 · Zasláno: 3. 9. 2013, 20:05:45
Děkuji Vám mnohokrát, obojí funguje.
|
||
Časová prodleva: 11 let
|
0