salve ragazzi... cerco di spiegarvi il mio problema che vorrei risolvere in un unica query
le tabelle coinvolte sono 4:
io vorrei con una query estrarre oltre alle informazioni relative al topic (titolo) anche la data di ultima lettura (o null se non esiste) e la massima data relativa ai post collegati al topic corrente; ovviamente tutto questo deve essere fatto in relazione all'utente correntecodice:tabella USER id nome 1 pippo 2 pluto tabella TOPIC id forum_id titolo 1 1 aiuto in mysql 2 1 le stringhe in php tabella POST id topic_id data contenuto 1 1 01-gen-07 bla bla bla 2 1 01-gen-07 bla bla bla 3 2 02-gen-07 dasdasdasd 4 2 03-gen-07 adsdasdasd tabella TOPIC_READ (rappresenta l'ultima volta che l'utente ha letto il topic) topic_id user_id data 1 1 01-gen-07
io sono a questo punto:
il problema cosi facendo è che non mi riporta i topic che non sono stati ancora relazionati con l'utente tramite la table topic_readcodice:$user_id = utente loggato al forum $forum_id = id del forum SELECT t.*, MAX(p.data) AS data_ultimo_post, tr.data AS data_ultima_lettura FROM topic AS t LEFT JOIN post AS p ON t.id = p.topic_id LEFT JOIN topic_read AS tr ON t.id = tr.topic_id WHERE t.forum_id = $forum_id AND tr.id_user = $user_id GROUP BY t.id ORDER BY MAX(p.d) DESC
ecco cosa mi aspetto di ricevere:
$forum_id = 1; $user_id = 1
mentre con:codice:topic.id topic.titolo titolo.id_forum data_ultimo_post data_ultima_lettura 1 aiuto in mysql 1 01-gen-07 01-gen-07 2 le stringhe in php 1 03-gen-07 null
$forum_id = 1; $user_id = 2
codice:topic.id topic.titolo titolo.id_forum data_ultimo_post data_ultima_lettura 1 aiuto in mysql 1 01-gen-07 null 2 le stringhe in php 1 03-gen-07 null

Rispondi quotando