Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Query su 2 tabelle con JOIN e LIMIT

    Salve a tutti!
    Avrei bisogno di aiuto.
    Ho un db sqlite con 2 tabelle: CLIENTI e LAVORAZIONI.
    ad ogni cliente possono esserci più di una lavorazione.
    tramite un campo di ricerca cerco in alcuni campi di queste tabelle.
    Devo estrarre per ogni cliente soltanto l'ultima lavorazione.
    vi posto la mia query fino ad ora.

    "SELECT lavorazioni.codice AS lavorazioni_codice,
    clienti.id AS clienti_id,
    clienti.nome AS clienti_nome,
    clienti.cognome AS clienti_cognome,
    lavorazioni.id_cliente AS lavorazioni_id_cliente,
    lavorazioni.data_prevista AS lavorazioni_data_prevista,
    lavorazioni.stato AS lavorazioni_stato
    FROM clienti, lavorazioni WHERE
    (clienti.nome LIKE '".$parole[0]."%'
    OR clienti.cognome LIKE '".$parole[0]."%'
    OR lavorazioni.codice LIKE '".$parole[0]."%') AND (
    clienti.nome LIKE '".$parole[1]."%'
    OR clienti.cognome LIKE '".$parole[1]."%'
    OR lavorazioni.codice LIKE '".$parole[1]."%') AND (
    clienti.nome LIKE '".$parole[2]."%'
    OR clienti.cognome LIKE '".$parole[2]."%'
    OR lavorazioni.codice LIKE '".$parole[2]."%')
    AND clienti.id=lavorazioni.id_cliente
    ORDER BY lavorazioni.data_prevista DESC"

    Grazie in anticipo.

  2. #2
    Nessuno che mi aiuti?

  3. #3
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Prova ad aggiungere alla query GROUP BY [id primario della tabella cliente].
    In ogni caso non puoi inserire le variabili a quel modo nella query, non so come è sviluppato il codice prima, ma non penso che quei parola[x] siano filtrati a dovere.

    Inoltre queste variabili sono sempre presenti? Ti consiglio di lavorare in strict mode.

    Piuttosto che inserire tutti gli OR sempre e comunque inseriscili nella query solo se la variabile contiene qualcosa.
    Ciao

  4. #4
    Grazie.
    tramite javascript al rilascio di qualsiasi tasto leggo il contenuto di un campo di testo.
    In ajax lo passo ad uno script.
    Lo script espande la frase tramite gli spazi, effettua una ricerca sul db e restituisce i risultati al browser.
    Funziona tutto alla perfezione, ma se volessi avere in ordine di lavorazioni i nomi dei clienti?
    mi spiego meglio:

    con questa query posso ottenere ad es.
    pinko pallino lav. del 2/10
    tizio lav. del 3/10
    caio lav. del 4/10
    tizio lav del 5/10
    sempronio lav del 6/10


    vedi tizio compare 2 volte.

    invece vorrei ottenere il nominativo una sola volta in base all'ultima lavorazione. es.

    pinko pallino lav. del 2/10
    tizio lav. del 3/10
    caio lav. del 4/10
    sempronio lav del 6/10

  5. #5
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Originariamente inviato da Razorblade
    Prova ad aggiungere alla query GROUP BY [id primario della tabella cliente].
    Ho già risposto. L'hai aggiunto alla query?

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.