Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

1052:A coluna 'id' na lista de campos é ambígua


O SQL dá suporte à qualificação de uma coluna prefixando a referência com o nome completo da tabela:
SELECT tbl_names.id, tbl_section.id, name, section
  FROM tbl_names
  JOIN tbl_section ON tbl_section.id = tbl_names.id 

...ou um alias de tabela:
SELECT n.id, s.id, n.name, s.section
  FROM tbl_names n
  JOIN tbl_section s ON s.id = n.id 

O alias de tabela é a abordagem recomendada - por que digitar mais do que você precisa?

Por que essas consultas parecem diferentes?


Em segundo lugar, minhas respostas usam a sintaxe ANSI-92 JOIN (a sua é ANSI-89). Enquanto eles executam o mesmo, a sintaxe ANSI-89 não suporta junções OUTER (RIGHT, LEFT, FULL). A sintaxe ANSI-89 deve ser considerada obsoleta, há muitos no SO que não votarão na sintaxe ANSI-89 para reforçar isso. Para mais informações, consulte esta pergunta .