+ Rispondi alla Discussione
Risultati da 1 a 2 di 2

Problema Query SQL

Ultimo Messaggio di Panda il:
  1. #1
    User
    Data Registrazione
    Apr 2006
    Località
    Milano
    Messaggi
    28

    Problema Query SQL

    ho un db in cui ho una tabella annunci e una tabella pubblicazioni

    1 annuncio può avere + pubblicazioni... e una pubblicazione ha una data di inizio pubblicazione e può essere approvata, scaduta, visibile ecc..

    ho un problema con una query con cui vorrei visualizzare tutte le ultime pubblicazioni di ogni annuncio con il relativo stato

    Per chiarire meglio... i dati presenti nella tabella sono come segue:



    cioè diversi annunci pubblicati + volte con date diverse e stati diversi
    il risultato finale che vorrei ottenere sarebbe
    la data + recente di ogni annuncio

    ex se ho:
    ann 1 - data pubbl 01/05 - stato visibile
    ann 1 - data pubbl 02/03 - stato archiviato
    ann 1 - data pubbl 05/06 - stato scaduto

    vorrei che la query ottenese come risultato di farmi vedere solo
    ann 1 - data pubbl 05/06 - stato scaduto (cioè quella con data + recente)

    pensavo di usare group by (annunci.id)... e max per la data di pubblicazione (pubblicazioni.data_inizio) ma non funziona.. raggruppa i record con lo stesso id annuncio... ma praticamente .... prende il primo...

    ann 1 - data pubbl 01/05 - stato visibile

    solo che gli mette come data pubbl l'ultima... in pratica, ho i dati della pubblicazione + vecchia.. con la data dell'ultima..

    ann 1 - data pubbl 05/06 - stato visibile - come si vede lo stato risulta sbagliato..dovrebbe essere "stato scaduto"

    ecco i risultati


    spero di essere stato abb chiaro...questo problema mi capita spesso e non so mai come risolverlo

    SELECT annunci.titolo , annunci.settore, annunci.id AS id_ann,
    categorie.id AS id_cat, categorie.nome_ita AS categoria, tipologie.id AS id_tip,
    tipologie.nome_ita AS tipologia, annunci.marca, annunci.modello, annunci.importo,
    pubblicazioni.id, pubblicazioni.stato, MAX(pubblicazioni.data_inizio)
    FROM (categorie INNER JOIN tipologie ON categorie.id=tipologie.id_categoria)
    INNER JOIN (annunci INNER JOIN pubblicazioni ON annunci.id=pubblicazioni.id_annuncio)
    ON tipologie.id=annunci.id_tipologia
    WHERE ( ((pubblicazioni.stato) LIKE '%' ) AND ((annunci.id_utente)=3)) GROUP BY annunci.id
    ORDER BY tipologie.id, pubblicazioni.data_inizio DESC, annunci.marca, annunci.modello LIMIT 0,20
    Ultima modifica di Panda; 24-05-07 alle 17:27

  2. #2
    User
    Data Registrazione
    Apr 2006
    Località
    Milano
    Messaggi
    28
    forse... e dico forse... così ho risolto

    SELECT *
    FROM (
    SELECT annunci.titolo , annunci.settore, annunci.id AS id_ann, pubblicazioni.id AS id_pubb, categorie.id AS id_cat,
    categorie.nome_ita AS categoria, tipologie.id AS id_tip, tipologie.nome_ita AS tipologia, annunci.marca,
    annunci.modello, annunci.importo, pubblicazioni.stato
    FROM (categorie INNER JOIN tipologie ON categorie.id=tipologie.id_categoria)
    INNER JOIN (annunci INNER JOIN pubblicazioni ON annunci.id=pubblicazioni.id_annuncio)
    ON tipologie.id=annunci.id_tipologia
    WHERE ( ((pubblicazioni.stato) LIKE '%' ) AND ((annunci.id_utente)=3))
    ) AS primatb

    INNER JOIN

    (SELECT MAX(pubblicazioni.data_inizio) As data_inizio, MAX(pubblicazioni.id) As id, pubblicazioni.id_annuncio
    FROM pubblicazioni
    GROUP BY pubblicazioni.id_annuncio) AS tmptb

    ON primatb.id_pubb=tmptb.id

    ORDER BY primatb.id_tip, tmptb.data_inizio DESC, primatb.marca, primatb.modello
    LIMIT 0,20

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.