sql >> Base de Datos >  >> RDS >> Mysql

1052:la columna 'id' en la lista de campos es ambigua

SQL admite la calificación de una columna anteponiendo la referencia con el nombre completo de la tabla:

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 de tabla:

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

El alias de la tabla es el enfoque recomendado:¿por qué escribir más de lo necesario?

¿Por qué estas consultas se ven diferentes?

En segundo lugar, mis respuestas usan la sintaxis ANSI-92 JOIN (la suya es ANSI-89). Si bien realizan lo mismo, la sintaxis ANSI-89 no admite combinaciones EXTERNAS (DERECHA, IZQUIERDA, COMPLETA). La sintaxis ANSI-89 debe considerarse obsoleta, hay muchos en SO que no votarán por la sintaxis ANSI-89 para reforzar eso. Para más información, consulte esta pregunta .