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

1052:Kolonne 'id' i feltlisten er tvetydig

SQL understøtter at kvalificere en kolonne ved at sætte referencen foran med enten det fulde tabelnavn:

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

...eller et tabelalias:

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

Tabelaliaset er den anbefalede tilgang -- hvorfor skrive mere end du skal?

Hvorfor ser disse forespørgsler anderledes ud?

For det andet bruger mine svar ANSI-92 JOIN-syntaks (din er ANSI-89). Selvom de udfører det samme, understøtter ANSI-89-syntaksen ikke OUTER joins (HØJRE, VENSTRE, FULD). ANSI-89 syntaks bør betragtes som forældet, der er mange på SO, der ikke vil stemme for ANSI-89 syntaks for at forstærke det. For mere information, se dette spørgsmål .



  1. Skift decimalseparator i MySQL

  2. Brug af Oracle-database med CakePHP 2.0

  3. MariaDB DAG() Forklaret

  4. #1139 - Fik fejlen 'repetition-operator operand invalid' fra regexp