Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    364

    sqlserver clausola where

    Salve,
    mi sono imbattuto in un problema che non riesco proprio a risolvere.Ho questa semplice query
    SELECT Fornitori.* FROM Fornitori INNER JOIN Fornitori_categorie ON Fornitori.id_fornitore = Fornitori_categorie.id_fornitore WHERE Fornitori_categorie.id_categoria = 1 and Fornitori_categorie.id_categoria = 3

    Il problema sta nel fatto che non restituisce nulla nonostante ci siano fornitori con id_categoria = 1 e a 3 nella tabella Fornitori_categorie, mentre se lascio una sola delle due condizioni funziona correttamente ed estrapola tutti i fornitori. Sembrerebbe che la doppia and sullo stesso campo gli dia fastidio

    Con mysql non mi sono imbattuto in un problema simile mi manca qualche nozione ??

    Grazie anticipatamente

  2. #2
    secondo me non ti funziona manco con mysql... perché la categoria o è 1 o è 3, non può essere 1 E 3

    usa la OR

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    364
    Perchè non può essere 1 E 3 ?? Il problema è proprio quello i fornitori possono appartenere a più categorie e la tabella Fornitori_categorie ha questa funzione, ha vari record con l'associazione fornitore, categoria...

    cosa mi sfugge?????



  4. #4
    AND: voglio solo quelli che siano sia 1 che 3 (e comunque la query dovrebbe essere diversa)
    OR: che siano 1, 3 o tutti e due, listali comunque

    scegli

  5. #5
    e comunque, SULLA STESSA RIGA un valore NON può essere 1 E ANCHE 3, ragiona

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    364
    <<< AND: voglio solo quelli che siano sia 1 che 3 (e comunque la query dovrebbe essere diversa)

    Si esatto la prima soluzione è quella che cerco, mi puoi dare una mano sulla correttezza della query ? Non riesco a capire dove sbaglio

    Grazie anticipatamente

  7. #7
    per essere sicuri che ci capiamo

    rossi tipo 1
    rossi tipo 3
    bianchi tipo 1
    verdi tipo 3

    vuoi SOLO rossi?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    364
    esatto

  9. #9
    allora usa comunque la OR, e fai una COUNT/GROUP BY IdFornitore: quelli che hanno la COUNT=2 sono quelli che hanno sia 1 che 3

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    364
    ok perfetto grazie, un po + complicato rispetto a mysql


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.