Mysql
 sql >> Database >  >> RDS >> Mysql

1052:La colonna 'id' nell'elenco dei campi è ambigua

SQL supporta la qualificazione di una colonna anteponendo al riferimento il nome completo della tabella:

SELECT tbl_names.id, tbl_section.id, name, section
  FROM tbl_names
  JOIN tbl_section ON tbl_section.id = tbl_names.id 

...o un alias di tabella:

SELECT n.id, s.id, n.name, s.section
  FROM tbl_names n
  JOIN tbl_section s ON s.id = n.id 

L'alias della tabella è l'approccio consigliato:perché digitare più del necessario?

Perché queste query hanno un aspetto diverso?

In secondo luogo, le mie risposte usano la sintassi ANSI-92 JOIN (la tua è ANSI-89). Sebbene funzionino allo stesso modo, la sintassi ANSI-89 non supporta i join OUTER (DESTRA, SINISTRA, COMPLETA). La sintassi ANSI-89 dovrebbe essere considerata deprecata, ci sono molti su SO che non voteranno per la sintassi ANSI-89 per rafforzarlo. Per maggiori informazioni, vedere questa domanda .