Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505

    [MySQL] - ordinare dati tabella in base a dei dati di un'altra tabella

    salve. chiedo scusa del mio precedente topic, ero di fretta e non mi sono spiegato bene, oltre a non fornire un titolo adeguato. provo a rispiegarmi meglio quì, in maniera un pò più adeguata!

    allora, io ho due tabelle in MySQL :
    topic (id, idtopic, titolo)
    messaggi (id, idtopic, idmessaggio, messaggio, data)

    come potrete capire, in topic c'è la lista di tutti i topic che ho. in messaggi ho la lista di tutti i messaggi per ogni topic.

    quindi supponiamo ad esempio che i dati inseriti siano :

    topic :
    1 111 il primo topic
    2 222 il secondo topic
    3 333 il terzo topic

    messaggi :

    1 333 5 messaggioD 2005
    2 222 4 messaggioC 2006
    3 111 3 messaggioA 2003
    4 333 1 messaggioB 2001
    5 222 6 messaggioF 2004
    6 333 2 messaggioE 2001

    a me servirebbe una query che mi estrapola il titolo del topic in base al messaggio più recente correlato a tale topic.

    quindi in questo caso l'output dovrà essere :

    il secondo topic
    il terzo topic
    il primo topic

    credo che l'unica soluzione sia creare una vista, ma non mi viene...

    idee?

    saluti, e scusate ancora!

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922

    Re: [MySQL] - ordinare dati tabella in base a dei dati di un'altra tabella

    Originariamente inviato da markzzz
    credo che l'unica soluzione sia creare una vista, ma non mi viene...
    La vista la dovresti pur sempre creare a partire dalla stessa query.

    codice:
    select t.idtopic,t.titolo,m.messaggio,m.data
    from topic as t
    inner join (select idtopic,messaggio,data from messaggi order by data desc)as m
    on t.idtopic = m.idtopic
    group by t.idtopic

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    eh ma così non funziona... quella l'avevo scritta anche io! il fatto è che a me serve l'idtopic del topic con relativo messaggio (correlato) più recente...

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922

    Re: [MySQL] - ordinare dati tabella in base a dei dati di un'altra tabella

    Deciditi su cosa vuoi.

    Originariamente inviato da markzzz
    a me servirebbe una query che mi estrapola il titolo del topic in base al messaggio più recente correlato a tale topic.

    quindi in questo caso l'output dovrà essere :

    il secondo topic
    il terzo topic
    il primo topic
    Aggiungi

    order by data desc a fine query per ottenere quell'output.

    Originariamente inviato da markzzz
    il fatto è che a me serve l'idtopic del topic con relativo messaggio (correlato) più recente...

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    è appunto questo il "difficile" di questa query...

    se aggiungo quel order by data alla fine non mi seleziona il messaggio con la "data" maggiore...

    se vedi nel mio esempio puoi notare che seleziona (in messaggi) il messaggio relativo a ogni topic con data più recente.

    es :
    "secondo topic" ha il messaggio in 'messaggio' più recente (messaggioC 2006) rispetto ai messaggi più recenti degli altri topic, e verrà stampato per primo.
    "terzo topic" verrà stampato per secondo perchè il messaggio più recente tra i suoi messaggi è messaggioD 2005 (che ha la data più grande di qualsiasi messaggio di "primo topic", ed è comunque meno recente rispetto a 2006).

    e via così...

    spero che così sia un attimo più chiaro ti ringrazio intanto per il tuo aiuto!

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da markzzz
    spero che così sia un attimo più chiaro
    Per niente.
    A me sembra che la query che ho scritto faccia esattamente ciò che hai chiesto.

    Per non fare notte, partendo dai dati di esempio, scrivi esattamente quali campi vuoi selezionare, quali record ti devono essere restituiti e in che ordine ti aspetti di ottenerli.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505

    Re: [MySQL] - ordinare dati tabella in base a dei dati di un'altra tabella

    come lo avevo scritto all'inizio del topic :
    Originariamente inviato da markzzz
    quindi in questo caso l'output dovrà essere :

    il secondo topic
    il terzo topic
    il primo topic
    il fatto è che la tua query non seleziona (nella tabella messaggi, tramite inner join) l'idtopic e la data del messaggio con la data più recente...

    l'order by come intendi te ordina le date dei vari topic, ma quelle stesse date non son le più recenti per ogni topic....

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    e invece fà proprio quello, è che sono un pirla

    grazie mille veramente...grazie a te ho risolto!!!

    buon weekend!!!!!

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.