Column 'regione' in where clause is ambiguous

searedone

Utente Attivo
11 Giu 2010
508
0
0
Buon anno a tutti ..

scusate solo una info al volo perché proprio non capisco ....

Allora ho la tabella annunci che è legate a tutte le varie tabelle per il mio db relazionale, come potrete notare dalla mia join , ma se aggiungo INNER JOIN users ON (annunci.user_id=user.id) o
INNER JOIN users ON (annunci.user_id=users.id) alla join qui di sotto mi da il seguente errore Column 'regione' in where clause is ambiguous, mentre se tolgo INNER JOIN users ON (annunci.user_id=user.id) tutto funziona perfettamente ,la cosa che non capisco è perché dato che nella tab annunci c'è il campo user_id come per gli altri campi :(
PHP:
$query = "SELECT * FROM
    annunci INNER JOIN regione ON (annunci.regioneid=regione.id )
    INNER JOIN provincia ON (annunci.provinciaid=provincia.id)
     INNER JOIN citta ON (annunci.cittaid=citta.id)
     INNER JOIN cliente ON (annunci.clienteid=cliente.id)
     INNER JOIN users ON (annunci.user_id=user.id)   
    
    WHERE id_annunci LIKE '%$cerca%'  OR name LIKE '%$cerca%' OR regione LIKE '%$cerca%' OR citta LIKE '%$cerca%' OR descrizione LIKE '%$cerca%' OR prezzo LIKE '%$cerca%' OR via LIKE '%$cerca%' OR username LIKE '%$cerca%' ";
 
Questo tipo di errore viene restituito da MySQL quando in una query su più tabelle ci sono due o più colonne con lo stesso nome. La soluzione è semplicemente aggiungere il nome della tabella (separato da un punto) davanti a quello della colonna.
 
Grazie mille per la risposta....

La cosa strana è che come puoi notare i questo caso non ci sono più di due colonne con lo stesso nome :(

Cmq dove intendi che posso mettere un punto o la virgola ??? d

PHP:
$query = "SELECT * FROM
    annunci INNER JOIN regione ON (annunci.regioneid=regione.id )
    INNER JOIN provincia ON (annunci.provinciaid=provincia.id)
     INNER JOIN citta ON (annunci.cittaid=citta.id)
     INNER JOIN cliente ON (annunci.clienteid=cliente.id)
     INNER JOIN .users ON (annunci.user_id=user.id)   // intendi cosi ???
    
    WHERE id_annunci LIKE '%$cerca%'  OR name LIKE '%$cerca%' OR regione LIKE '%$cerca%' OR citta LIKE '%$cerca%' OR descrizione LIKE '%$cerca%' OR prezzo LIKE '%$cerca%' OR via LIKE '%$cerca%' OR username LIKE '%$cerca%' ";
 
No, devi aggiungerlo qui:
Codice:
WHERE annunci.id_annunci LIKE '%$cerca%'  OR annunci.name LIKE '%$cerca%' OR annunci.regione LIKE '%$cerca%' OR annunci.citta LIKE '%$cerca%' OR annunci.descrizione LIKE '%$cerca%' OR annunci.prezzo LIKE '%$cerca%' OR annunci.via LIKE '%$cerca%' OR annunci.username LIKE '%$cerca%'
 
Ciao ..

ho fatto così

PHP:
$query = "SELECT * FROM
    annunci INNER JOIN regione ON (annunci.regioneid=regione.id )
    INNER JOIN provincia ON (annunci.provinciaid=provincia.id)
     INNER JOIN citta ON (annunci.cittaid=citta.id)
     INNER JOIN cliente ON (annunci.clienteid=cliente.id)
      INNER JOIN users ON (annunci.user_id=username.id)
   
    
    WHERE annunci.id_annunci LIKE '%$cerca%'  OR annunci.name LIKE '%$cerca%' OR annunci.regione LIKE '%$cerca%' OR annunci.citta LIKE '%$cerca%' OR annunci.descrizione LIKE '%$cerca%' OR annunci.prezzo LIKE '%$cerca%' OR annunci.via LIKE '%$cerca%' ";

ma mi da' questo errore:

Unknown column 'annunci.name' in 'where clause'
 
Ciao sulla tabella annunci...

Cmq ho risolto modificando il doppione regione con un campo regione e uno regiones :)

Grazie mille
 

Discussioni simili