Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    6

    Query con join in una ricerca

    Buongiorno a tutti, ho realizzato un modulo di ricerca all'interno di un sito ma ho qualche problema a farlo funzionare correttamente.

    Praticamente c'è un contenuto principale e poi, in un altra tabella un numero di elementi che sono gli attributi del contenuto principale.

    La mia query è questa

    codice:
    SELECT *  , contenuti.id as contenutoid FROM contenuti  							
    RIGHT JOIN contenuti_addon ON contenuti.id = contenuti_addon.id_contenuto  		
    WHERE 
    contenuti.stato = '1' 
    
    AND ( contenuti_addon.nome_addon = 'regione' 
    AND contenuti_addon.valore_addon = 'Piemonte' ) 					 
    
    AND ( contenuti_addon.nome_addon = 'provincia' 
    AND contenuti_addon.valore_addon = 'Cuneo' )
    Rimuovendo uno degli ultimi 2 gruppi di AND funziona correttamente però. Sto sbagliando qualcosa con il join?
    Grazie mille a tutti!

  2. #2
    nome_addon e valore_addon non potranno mai rappresentare contemporaneamente due valori differenti, il WHERE va scritto così:

    WHERE
    contenuti.stato = '1'
    AND (contenuti_addon.nome_addon = 'regione'
    AND contenuti_addon.valore_addon = 'Piemonte' )

    OR
    contenuti.stato = '1'
    AND ( contenuti_addon.nome_addon = 'provincia'
    AND contenuti_addon.valore_addon = 'Cuneo' )

  3. #3
    Ciao,
    Rimuovendo uno degli ultimi 2 gruppi di AND funziona correttamente però. Sto sbagliando qualcosa con il join?
    immagino che il campo "contenuti_addon.id_contenuto" sia uguale sulla tabella "contenuti_addon" per il seguente filtro
    codice:
    AND ( contenuti_addon.nome_addon = 'regione' 
    AND contenuti_addon.valore_addon = 'Piemonte' )

    e per il seguente filtro:
    codice:
    AND ( contenuti_addon.nome_addon = 'provincia' 
    AND contenuti_addon.valore_addon = 'Cuneo' )
    in caso affermativo se vuoi che ti estrae 2 record con i valori della regione e i valori della provincia, nella tabella principale occorrono due record, uno che contiene i valori per la regione, uno che contiene i valori per la provincia.

    Facci sapere qual è il risultato atteso

    Ciao
    Mik

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2013
    Messaggi
    6
    Grazie a entrambi per le risposte, credo che dovrò riformulare la mia query per la ricerca..

    @valeriobb87 : non posso usare quella query perchè io vorrei trovare tutti gli elementi che hanno
    come chiavi prima Piemonte e poi cuneo

    con un OR di mezzo, mi andrebbe a trovare tutti i piemonte e tutti i cuneo.. quindi in mezzo ci sarebbero anche altri valori che non voglio..

    faccio gli ultimi tentativi poi al max riscrivo la query in modo diverso.. Grazie comunque!

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.