Problema con la Inner Join
Problema con la Inner Join postato il 26/10/2010 21:57:52 nel forum programmazione, open source e hosting e modificato da stefano_il_patetico il 26/10/2010 22:22:03
Salve a tutti,
oggi vi pongo un problema che fatico ad inquadrare, vuoi la mia inesperienza vuoi la poca chiarezza di alcune guide online.
Voglio che nella schermata principale della chat siano visualizzabili dei mini avatar.
L'aggiunta della funzionalità mini avatar (che si ritrova nella sezione modifica scheda PG) funziona correttamente (cioè a livello di metodo POST e di DB). In alter parole il link del mini avatar è correttamente inserito all'interno della table USERS column MINIAVATAR. Il punto è che vorrei estrapolare il MINIAVATAR dalla table USERS e inserirla in URLAVATAR_CHAT della table CHAT. Ho pensato di utilizzare una INNER JOIN nella main chat.
Date un'occhiata qui:
<?PHP
$sql = "SELECT ID_CHAT,USER_CHAT,MSG_CHAT,SESSO_CHAT,URLSESSO_CHAT,RAZZA_CHAT,URLRAZZA_CHAT,
DATA_CHAT,TIPO_CHAT,SIMB_CHAT,URLCORP_CHAT,CARICA_CHAT,
CASATA_CHAT, DESTINATARIO, COGNOME_CHAT,
URLAVATAR_CHAT FROM CHAT
INNER JOIN USERS
ON CHAT.URLAVATAR_CHAT = USERS.URLAVATAR_CHAT
WHERE LUOGO_CHAT='$LOCAZIONE' ORDER BY ID_CHAT DESC LIMIT 20"; //LIMIT 20
$query = mysql_query ($sql, $connessione) or die(mysql_error());
{
while ($row=mysql_fetch_array($query)){
$ID_CHAT=$row["ID_CHAT"];
$USER_CHAT=$row["USER_CHAT"];
$MSG_CHAT=$row["MSG_CHAT"];
$DATA_CHAT=$row["DATA_CHAT"];
$SESSO_CHAT=$row["SESSO_CHAT"];
$URLSESSO_CHAT=$row["URLSESSO_CHAT"];
$RAZZA_CHAT=$row["RAZZA_CHAT"];
$URLRAZZA_CHAT=$row["URLRAZZA_CHAT"];
$TIPO_CHAT=$row["TIPO_CHAT"];
$URLCORP_CHAT=$row["URLCORP_CHAT"];
$SIMB_CHAT=$row["SIMB_CHAT"];
$CARICA_CHAT=$row["CARICA_CHAT"];
$CASATA_CHAT=$row["CASATA_CHAT"];
$DESTINATARIO=$row["DESTINATARIO"];
$COGNOME_CHAT=$row["COGNOME_CHAT"];
$AVATAR_CHAT=$row["URLAVATAR_CHAT"];
etc etc..
mi da questo errore..
Column 'URLAVATAR_CHAT' in field list is ambiguous
Utilizzo l'OS Città Virtuale GPL.
Suggerimenti?
Grazie
Pagine → 1
26/10/2010 22:01:11
URLAVATAR_CHAT te lo da ambiguo perchè probabilmente è presente in entrambe le tabelle, prova ad immetterci come suffisso il nome della tabella e puntino:
USERS.URLAVATAR_CHAT
26/10/2010 22:26:11
Avrò scritto qualche baggianata nelle pagine "legate" a questa qui.
Ho infatti risolto nel seguente e semplicistico modo:
$sql = "SELECT ID_CHAT,USER_CHAT,MSG_CHAT,SESSO_CHAT,URLSESSO_CHAT,
RAZZA_CHAT,URLRAZZA_CHAT,DATA_CHAT,TIPO_CHAT,
SIMB_CHAT,URLCORP_CHAT,CARICA_CHAT,CASATA_CHAT,
DESTINATARIO, COGNOME_CHAT, URLAVATAR_CHAT FROM
CHAT WHERE LUOGO_CHAT='$LOCAZIONE' ORDER BY ID_CHAT
DESC LIMIT 20"; //LIMIT 20
$query = mysql_query ($sql, $connessione) or die(mysql_error());
{
while ($row=mysql_fetch_array($query)){
$ID_CHAT=$row["ID_CHAT"];
$USER_CHAT=$row["USER_CHAT"];
$MSG_CHAT=$row["MSG_CHAT"];
$DATA_CHAT=$row["DATA_CHAT"];
$SESSO_CHAT=$row["SESSO_CHAT"];
$URLSESSO_CHAT=$row["URLSESSO_CHAT"];
$RAZZA_CHAT=$row["RAZZA_CHAT"];
$URLRAZZA_CHAT=$row["URLRAZZA_CHAT"];
$TIPO_CHAT=$row["TIPO_CHAT"];
$URLCORP_CHAT=$row["URLCORP_CHAT"];
$SIMB_CHAT=$row["SIMB_CHAT"];
$CARICA_CHAT=$row["CARICA_CHAT"];
$CASATA_CHAT=$row["CASATA_CHAT"];
$DESTINATARIO=$row["DESTINATARIO"];
$COGNOME_CHAT=$row["COGNOME_CHAT"];
$URLAVATAR_CHAT=$row["URLAVATAR_CHAT"];
Grazie.
28/10/2010 18:51:12
si facendo la selezione manuale lo risolvi. Se volevi risolverlo, bastava metterci degli alias.
TIpo tabella.url AS a
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
CRSED: F.O.A.D. ↗
Hero Wars ↗
World of Tanks ↗
Storie di Agarthi ↗