Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    14

    [MySQL] come eseguire la seguente query

    ciao a tutti,

    devo eseguire una selezione un pochino complicata e non riesco bene a capire come fare, vi espongo tabelle e risultati necessari.

    3 tabelle

    ticket

    status ticket

    prodotti

    mi servono tutti i dettagli dei ticket (sono tanti), piu' tutti i dettagli del prodotto riferito nei vari ticket (e fin qui nessun problema) e i dettagli dello status del ticket.

    il problema e' che status ticket contiene inserimenti e non update.

    non so se mi sono spiegato....

    vi scrivo la query che ho scritto io ma che NON va bene in quanto mi da tutti i risultati di ticketstatus mentre mi dovrebbe dare solo l'ultimo inserito.

    Select T.*, S.*, P.* from ticket T, ticketstatus S, prodotti P WHERE T.id_ticket = S.id_ticket AND T.codice = P.codice order by S.stato, S.dataticketstatus desc

  2. #2
    potresti scrivere i campi delle tabelle ed essere un pò pri preciso? non ho capito poi il fatto dello status...mi potresti rispiegare meglio?
    Un uomo è vecchio solo quando i rimpianti, in lui, superano i sogni. A. Einstein

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    14
    (metto un po' di dati finti, ma per far capire)

    tabella ticket
    id_ticket
    codice_articolo
    fattura

    tabella ticketstatus
    id_ticketstatus
    id_ticket
    stato
    motivazione
    data_ticket

    tabella prodotti
    codice_articolo
    prezzo

    mettiamo che io abbia nella tabella ticket
    1, 2020, abcdefg
    2, 2030, zerrrrr

    nella tabella ticketstatus
    1, 1, "aperto", "e' rotto", 2007-01-20
    2, 1, "in riparazione", "arrivato in magazzino", 2007-01-22
    3, 2, "aperto", "non funziona", 2007-01-21

    nella tabella prodotti
    2020, 17€
    2030, 10€

    devo tirare fuori, i dati di tutti i ticket, tutti i dati dei prodotti relativi al prodotto e (e qui e' il problema) lo stato del ticket.
    come vedete nella tabella "ticketstatus" per lo stesso ticket ho 2 stati, naturalmente e' buono solo l'ultimo inserito (o se preferite quello con la data piu' recente)

  4. #4
    Utente di HTML.it L'avatar di njno
    Registrato dal
    Jan 2007
    Messaggi
    48
    Ti consiglio di crearti una vista che contiene per ogni id_ticket il massimo valore della data inserita in status. Poi modifichi la tua query inserendo un join con la vista su ottenuta e una clausola where dove imponi l'uguaglianza tra le due date.

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.