Mysql
 sql >> Datenbank >  >> RDS >> Mysql

1052:Spalte „id“ in der Feldliste ist mehrdeutig

SQL unterstützt die Qualifizierung einer Spalte, indem der Referenz entweder der vollständige Tabellenname vorangestellt wird:

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

...oder ein Tabellenalias:

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

Der Tabellenalias ist der empfohlene Ansatz – warum mehr eingeben, als Sie müssen?

Warum sehen diese Abfragen anders aus?

Zweitens verwenden meine Antworten die ANSI-92 JOIN-Syntax (Ihre ist ANSI-89). Während sie dasselbe ausführen, unterstützt die ANSI-89-Syntax keine OUTER-Joins (RIGHT, LEFT, FULL). Die ANSI-89-Syntax sollte als veraltet angesehen werden, es gibt viele auf SO, die nicht für die ANSI-89-Syntax stimmen werden, um dies zu verstärken. weitere Informationen finden Sie in dieser Frage .