#1052 - Column 'id' in where clause is ambiguous | Progettazione di DataBase Relazionali

Topic: Pubblico - Composto da 5 Posts di 3 Utenti.

19 Dicembre, 2008 15:03 #1
GioMBG
Utente

GioMBG
Registrato: Dec, 2008
Posts: 23
Offline

 Ciao a tutti!

come vedete sono un newbie degli alias,

ci ho provato più volte… non riesco a eseguire una Join tra la tabella data e la ISRC in funzione di id che hanno lo stesso nome 'id' sia per una che per l'altra tabella, ho capito che dovrei fare un'alias (mi sembra) di un id per cambiargli il nome e non mandarlo in conflitto con l'altro omonimo ma… non riesco a capire la tecnica

Ringrazio anticipatamente!

GioMBG

SELECT ISRC1, Tracks FROM data JOIN ISRC ON data.id=ISRC.id WHERE id=1

#1052 – Column 'id' in where clause is ambiguous

19 Dicembre, 2008 16:27 #2
g2d
Moderatore

g2d
Registrato: Jul, 2008
Posts: 957
Offline
Segui g2d su Twitter!

Ciao GioMBG e benvenuto nella nostra community MySQL Italia,

 

la sintassi corretta della query che staiscrivendo è la seguente:

 SELECT campi da estrarre FROM TAB1 JOIN TAB2  ON TAB1.id=TAB2.id WHERE TAB1.id=#

L'errore #1052 che ricevi indica infatti che il nome della colonna 'id' è ambiguo perchè non hai specificato su quale tabella  fare il confronto.

Quindi pnel caso stai lavorando su più tabelle conviene scrivere NomeTabella.NomeCampo, tuttavia spesso questa pratica può diventare noiosa esiste infatti la possibilità di attribuire degli ALIAS ai nome delle tabelle  con la sintassi seguente

 SELECT campi da estrarre FROM TAB1 AS T1 JOIN TAB2 AS T2 ON T1.id=T2.id WHERE T1.id=#

 

Saluti  



Un tempo ero algweb ora sono g2d

19 Dicembre, 2008 21:40 #3
GioMBG
Utente

GioMBG
Registrato: Dec, 2008
Posts: 23
Offline

finalmente ho capito!

Grazie algweb!

GioMBG

22 Febbraio, 2009 01:52 #4
Sante Caserio
Moderatore

Sante Caserio
Registrato: Jul, 2008
Posts: 99
Offline

Io penso che usare gli alias dei nomi delle tabelle (anche per i campi “non ambigui”) non possa che aumentare la leggibilità. Anche se ormai è risolto, tanto per dare il mio contributo, ti faccio vedere come faccio io:

1SELECT
2          t1.campoA, t2.campoB
3          t2.campoC
4     FROM tabella1 t1
5LEFT JOIN tabella2 t2
6       ON t1.id=t2.id

Ultima modifica 11 Luglio, 2010 01:15 di Sante Caserio

07 Luglio, 2010 22:21 #5
GioMBG
Utente

GioMBG
Registrato: Dec, 2008
Posts: 23
Offline

Ciao Sante, sono tornato qui perchè per un’altra volta sono incapppato nello stesso problema e perchè ma non riuscivo ad identificare lo script dove avevo adottato la prima soluzione… a questo giro mi sono rifatto una query alla tua maniera. GRAZIE GioMBG

Condividi su:

Loggati o Registrati per replicare