Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    53

    Query per ricavare valori da "scelta multipla" o soluzione PHP

    Ciao a tutti, il titolo del tread è quantomeno dubbio perchè farei fatica a spiegarlo anche a voce. Ci provo.
    Devo ricavare valori con una query che mette in JOIN più tabelle.
    Dalla tabella "base" ricavo alcune informazioni sull'id che mi interessa e da li faccio partire il join alla tabella che mi interessa.
    La ricerca che devo eseguire deriva da una scelta multipla esclusiva. Per intenderci faccio un esempio.
    TAB FIRST
    id = 1 , nome = UNO
    id = 2 , nome = DUE
    id = 3 , nome = TRE

    TAB SECOND
    id = 1 , id_cli = 1 , id_ricerca = 10
    id = 2 , id_cli = 2 , id_ricerca = 3
    id = 3 , id_cli = 1 , id_ricerca = 3
    id = 4 , id_cli = 3 , id_ricerca = 5

    quando ho un solo valore da ricercare nessun problema
    SELECT * FROM FIRST INNER JOIN SECOND on FIRST.id=SECOND.id_cli WHERE SECOND.id_ricerca = 3
    risultato = DUE,UNO

    Il problema nasce quando voglio ricercare più id_ricerca contemporaneamente. Cioè se volessi in contemporanea avere quell' id_cli che possiede sia id_ricerca 10 che id_ricerca 3.

    Spero di essermi fatto capire.

    La soluzione che mi viene ora è quella di ricreare un array in PHP ch econtiene tutti gli ID con la loro id ricerca, per poi confrontarlo con il mio vettore di ricerche del programma. Fare il confronto tra vettori e solo di quelli "buoni" prendere gli id in un nuovo vettore e ridarli in pasto alla query.
    C'è modo di ovviare a questo immondo giro e fare tutto in una query?
    Grazie a tutti
    _______________________________
    ...Ma perchè non ho continuato a fare il dj nei villaggi turistici?

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Versione mysql?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    53
    Si certo, sto lavorando con un DB MySQL. Ti ringrazio per l'interessamento intanto
    _______________________________
    ...Ma perchè non ho continuato a fare il dj nei villaggi turistici?

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da crisscb
    Si certo, sto lavorando con un DB MySQL. Ti ringrazio per l'interessamento intanto

    Volevo sapere che versione hai....


    Comunque, ripensandoci forse non serve: prova così

    select distinct second.id_cli, first.nome from second join second s on second.id_cli = s.id_cli join first on second.id_cli = first.id where second.id_ricerca = 3 and s.id_ricerca = 10

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    53

    Scusa, ma preso nei meandri delle elucubrazioni non avevo capito
    La versione MySQL posso pure upgradarla, cmq è > della 4.1
    io ho escluso la tecnica da te proposta a priori perchè posso avere n richieste e fare n alias di tabella non è una buona soluzione direi se non voglio ch eil server mi dica :berto:

    Altre idee?
    _______________________________
    ...Ma perchè non ho continuato a fare il dj nei villaggi turistici?

  6. #6
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    SELECT * FROM FIRST INNER JOIN SECOND on FIRST.id=SECOND.id_cli WHERE SECOND.id_ricerca IN(3,10,326549652198765168765468765421)

    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    53
    Ti ringrazio ma non è prpriamnete quello che mi serve..infatti con IN simulo un OR e non un AND come serve a me.
    campo IN (1,2,3) è come dire campo=1 OR campo=2 OR campo=3
    a me serve campo=1 AND campo=2 AND campo=3

    Più vado avanti e più mi sa devo andare di array
    nessun altro h aidee?
    _______________________________
    ...Ma perchè non ho continuato a fare il dj nei villaggi turistici?

  8. #8
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    ma un campo non può essere contemporaneamente 1 e 2 e 3

    forse intendi dire che una parte del contenuto deve essere 1 e 2 e 3...
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    53
    è proprio questo che devo simulare invece.
    Il fatto di avere in contemporanea più valori per uno stesso "cliente".
    Per intenderci, un cliente 1 ha i prodotti 10 20 30 su tre righe ovviamente
    il cliente 2 ha i prodotti 10 e 40
    il cliente 3 ha i prodotti 20 e 50

    io devo estrarre SOLO quel cliente che abbia a disposizione E il prodotto 10 E il prodotto 20, quindi mi deve risultare solo il cliente 1.

    Spero la problematica sia ora un pelo più chiara.

    intanto Thank's dell'aiuto
    _______________________________
    ...Ma perchè non ho continuato a fare il dj nei villaggi turistici?

  10. #10
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    ok avrai una tabella clienti, una prodotti e una ceh le mette in relazione, per esempio prodPerCli

    SELECT cliente.nome INNER JOIN(prodPerCli INNER JOIN prodotti ON prodPerCli.idProd=prodotti.idCode) ON cliente.idCode=prodPerCli.idCliente WHERE prodotti.prodotto IN (10,20)

    scritta senza testare :ignore:
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

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.