Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    55

    Join con ordinamento su una seconda tabella

    Salve Ragazzi, ho bisogno di aiuto

    Il problema è questo:
    ho un elenco di POST su una tabella, ed ho un'altra tabella con i COMMENTI ai suddetti post.

    Ora voglio mostrare, con un ciclo, prima i post che sono stati commentati e poi tutti gli altri, e non riesco a buttare giù una query che funzioni correttamente.

    Queste sono le mie tabelle:

    POST
    id, id_sezione, titolo, testo

    COMMENTI
    id, id_post, idutente, commento

    e questa è la query che non va:
    codice:
    SELECT post.* FROM commenti INNER JOIN post ON commenti.id_post = post.ID WHERE post.id_sezione=1 ORDER BY commenti.ID DESC
    Giustamente, la query mostra soltanto i post per i quali è presente un commento, ma io devo mostrarli tutti, anche quelli che non sono stati commentati.

    Forse dovrei usare una LEFT JOIN, ma non so da dove cominciare e non ho manuali sotto mano, almeno non fino a domani.

    Chi mi da una mano??

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    togli il "forse".
    quale sarebbe esattamente la cosa che ti turba?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    55
    La cosa che mi turba è che non sono in grado di fare una LEFT JOIN, non riesco a trovare una spiegazione chiara online, e non ho il manuale di sql sottomano.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da gleoho
    La cosa che mi turba è che non sono in grado di fare una LEFT JOIN, non riesco a trovare una spiegazione chiara online, e non ho il manuale di sql sottomano.
    è identica a quella che hai già fatto, con LEFT JOIN anzichè INNER JOIN

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    55
    Si, si, ci ero appena arrivato!!!

    Però, caspita, mi sono perso in un bicchier d'acqua!

    SONO SENZA SPERANZE!!!


    Per punizione stasera, se riesco a farmi restituire il manuale prestato, leggo 10 volte il capitolo dedicato!!!


    Grazie Franz

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    55
    Attenzione,
    però se ho 10 commenti su un post, mi restituisce il post 10 volte!!!

  7. #7
    certo

    post 1 -- commento 1
    post 1 -- commento 2
    ecc

    cosa vorresti invece?

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    55
    Ciao Optime,

    vorrei semplicemente ordinare i post per "ultimo commentato".

    Non ho bisogno dei post duplicati, ma solo dell'elenco con i post ....

    Potrei fare una distinct, ma andrebbe in conflitto con l'ordinamento.

  9. #9
    fa' un esempio (ho questi record nel db, vorrei queste info in uscita). grazie

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    55
    Ok, allora la query

    codice:
    SELECT post.* FROM commenti LEFT JOIN post ON commenti.id_post = post.ID WHERE post.id_sezione=10 ORDER BY post.ID DESC
    mi restituisce

    codice:
    id ---- id_sezione ---- titolo ---- testo
    280 -- 10 ----------- titolo1 --- testo1
    155 -- 10 ----------- titolo2 --- testo2
    155 -- 10 ----------- titolo2 --- testo2
    155 -- 10 ----------- titolo2 --- testo2
    155 -- 10 ----------- titolo2 --- testo2
    155 -- 10 ----------- titolo2 --- testo2
    155 -- 10 ----------- titolo2 --- testo2
    155 -- 10 ----------- titolo2 --- testo2
    149 -- 10 ----------- titolo3 --- testo3
    149 -- 10 ----------- titolo3 --- testo3
    104 -- 10 ----------- titolo4 --- testo4
    88 --- 10 ----------- titolo5 --- testo5
    71 --- 10 ----------- titolo6 --- testo6
    71 --- 10 ----------- titolo6 --- testo6
    66 --- 10 ----------- titolo7 --- testo7
    66 --- 10 ----------- titolo7 --- testo7
    vorrei ottenere

    codice:
    id ---- id_sezione ---- titolo ---- testo
    280 -- 10 ----------- titolo1 --- testo1
    155 -- 10 ----------- titolo2 --- testo2
    149 -- 10 ----------- titolo3 --- testo3
    104 -- 10 ----------- titolo4 --- testo4
    88 --- 10 ----------- titolo5 --- testo5
    71 --- 10 ----------- titolo6 --- testo6
    66 --- 10 ----------- titolo7 --- testo7
    Ciò che mi serve soltanto un elenco di post ORDINATO per ultimo commento ricevuto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.