sql >> Database >  >> RDS >> Mysql

1052:Kolom 'id' in veldlijst is dubbelzinnig

SQL ondersteunt het kwalificeren van een kolom door de verwijzing vooraf te laten gaan door ofwel de volledige tabelnaam:

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

...of een tabelalias:

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

De tabelalias is de aanbevolen benadering -- waarom zou u meer typen dan nodig is?

Waarom zien deze zoekopdrachten er anders uit?

Ten tweede gebruiken mijn antwoorden de ANSI-92 JOIN-syntaxis (de jouwe is ANSI-89). Hoewel ze hetzelfde uitvoeren, ondersteunt de ANSI-89-syntaxis geen OUTER-joins (RIGHT, LEFT, FULL). ANSI-89-syntaxis moet als verouderd worden beschouwd, er zijn velen op SO die niet voor ANSI-89-syntaxis zullen stemmen om dat te versterken. Voor meer informatie, zie deze vraag .



  1. Hoe voortschrijdend gemiddelde te berekenen in PostgreSQL

  2. Hoe tel je het aantal keren dat een bepaalde substring in een SQL-varchar voorkomt?

  3. Hoe SQL * PLUS-client in linux te installeren

  4. Postgres dynamische queryfunctie