Php/Mysql query JOIN tra tabelle

colomber

Utente Attivo
4 Dic 2012
232
1
18
Recupero dalla query di partenza id_messaggio, testo_messaggio, datacreazione_messaggio, autore_messaggio, tot_messaggi;

Con la stessa query come faccio a recuperare da un'altra tabella chiamata UTENTI, il contenuto della colonna LIVELLO relativo ad ogni AUTORE_MESSAGGIO?

$var = "
SELECT
id_messaggio
,testo_messaggio
,datacreazione_messaggio
,autore_messaggio
,( SELECT count(*) FROM messaggi d2 WHERE d2.autore_messaggio = d1.autore_messaggio ) tot_messaggi
FROM messaggi d1
WHERE id_discussione = '".$_GET["topic_id"]."'
ORDER BY datacreazione_messaggio ASC LIMIT $start, $display";
 

marino51

Utente Attivo
28 Feb 2013
2.917
164
63
Lombardia
visto che devi recuperare 1 sola colonna (livello), puoi aggiungere un'altra select con lo stesso "formato" di quella esistente per il "count"
 

colomber

Utente Attivo
4 Dic 2012
232
1
18
così mi da errore nella query

$var = "
SELECT
id_messaggio
,testo_messaggio
,datacreazione_messaggio
,autore_messaggio
,( SELECT count(*) FROM messaggi d2 WHERE d2.autore_messaggio = d1.autore_messaggio ) tot_messaggi
,( SELECT livello FROM utenti d3 WHERE d3.username = d1.autore_messaggio ) livello_autore
FROM messaggi d1
WHERE id_discussione = '".$_GET["topic_id"]."'
ORDER BY datacreazione_messaggio ASC LIMIT $start, $display";
 

marino51

Utente Attivo
28 Feb 2013
2.917
164
63
Lombardia
upload_2017-8-29_9-34-33.png

la sintassi è giusta, perché segnala la mancanza dell'oggetto 'messaggi', non ho la tabella nel mio db
(ho tolto limit ... perché non esiste su ms-sql)
che errore da, la tua query ???
 
  • Like
Reactions: colomber

colomber

Utente Attivo
4 Dic 2012
232
1
18
trovato l'errore avevo scritto male un nome ora tutto funziona perfettamente.

grazie