Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: problema su SELECT SQL

  1. #1

    problema su SELECT SQL

    Ragazzi ho la necessità di fare una ricerca in basi a diversi valori, ma purtroppo ancora no nriesco a trovare la soluzione ottimale per la query.

    I campi in questione, per ora, sono tre:
    CLIENTE
    TARGA
    MARCA

    LA query è la seguente:
    codice:
    sql = "SELECT tab_trattativa.*, tab_det_usato.* FROM tab_trattativa, tab_det_usato WHERE (tab_trattativa.nome = '" & nome & "' OR tab_trattativa.targa = '" & targa & "' OR tab_trattativa.marca = '" & marca & "') AND tab_trattativa.vendita = false AND tab_trattativa.id_det_usato = tab_det_usato.ID_det_usato"
    Purtroppo la query non funziona come vorrei.
    Se faccio la ricerca per una sola voce fra le tre che vi ho elencato, la query va ok.
    MA se per esempio voglio trovare tutte le BMW relative ad un determinato cliente, lui mi mostra sia tutti i clienti con quel nome, sia tutte le marche esistenti con quel nome, e non le BMW associate a quel cliente specifico inserito nella chiave di ricerca.
    Spero di essermi spiegato bene.

    Ho provato anche con gli AND al posto degli OR, ma il problemna poi diventa un altro, in quanto se non inserico la terza voce allora non trova niente.

    Spero possiate aiutarmi.
    Ciao e grazie

  2. #2
    cavolo nessuna risposta...
    Domanda troppo difficile o non si capisce la domanda?

  3. #3

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi usare la INNER JOIN.

    Roby

  5. #5
    Roby scusami ma non l'ho mai usata la INNER JOIN.
    Potresti darmi un aiuto piu concreto?
    Grazie mille

  6. #6

  7. #7
    grazie per link, domani proverò a fare la nuova query.
    Volevo solo dirti che i valori che devo prendere sono tutti sulla stessa tabella.
    La join che ho fatto nella select mi serve per recuperare altri valori collegati
    In pratica la SELECT potrebbe essere semplicemente anche così:

    codice:
    sql = "SELECT * FROM tab_trattativa WHERE nome = '" & nome & "' OR targa = '" & targa & "' OR marca = '" & marca & "') AND vendita = false"
    Va bene cmq l'aiuto che mi hai dato con la INNER JOIN?

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Si, se sono informazioni collegate alla prima tabella.

    Roby

  9. #9
    no scusami roby, ma forse non mi sono spiegato bene.
    Ragioniamo su di una sola tabella:
    Nella mia tabella ci sono tre campi
    Cliente
    Marca
    Targa

    Le mie chiavi di ricerca quindi sono queste tre.
    Adesso affinchè la SELECT consideri tutti i campi riempiti dall'utente come devo impostare la query?

    il punto che non me la fa funzionare è che se inserisco tutti AND nella query avrò che nel caso in cui una chiave è vuota nontrova niente, e quindi questo tipo di query non vabene:
    codice:
    sql = "SELECT * FROM tab_trattativa WHERE nome = '" & nome & "' AND targa = '" & targa & "' AND marca = '" & marca & "') AND vendita = false"
    Il problema in pratica sono i campi vuoti lasciati dall'utente.
    Se inserisco infatti tutte le chiavi di ricerca nei campi input allora la ricerca è ovviamente ok, ma se lascio un campo vuoto non mi trova niente, perchè ovviamente per lui non esiste il campo vuoto.

    Spero di essere stato un pò piu chiarto stavolta.
    Grazie

  10. #10
    prova a sostituire i vari

    '" & nome & "'

    con

    '%" & nome & "%'

    nel primo caso, se non metti il nome, il db capisce di ricercare dove il valore è empty '', mentre nel secondo caso cerca anche "dove c'è qualcosa"

    Prova a fare la stesa osa anche con gli altri capi del db
    E come al solito, speriamo di non aver detto fesserie
    Home: http://www.ivansweb.com
    Le mie applicazioni gratuite in ASP
    · IWGallery
    · IWNewsletter
    · IWMessenger
    · IWGuestbook

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.