sql >> Databasteknik >  >> RDS >> Mysql

1052:Kolumn 'id' i fältlistan är tvetydig

SQL stöder kvalificering av en kolumn genom att prefixet referensen med antingen det fullständiga tabellnamnet:

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

...eller ett tabellalias:

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

Tabellaliaset är det rekommenderade tillvägagångssättet -- varför skriva mer än du måste?

Varför ser dessa frågor annorlunda ut?

För det andra använder mina svar ANSI-92 JOIN-syntax (din är ANSI-89). Även om de fungerar på samma sätt stöder ANSI-89-syntaxen inte OUTER-kopplingar (HÖGER, VÄNSTER, FULL). ANSI-89-syntax bör betraktas som utfasad, det finns många på SO som inte kommer att rösta på ANSI-89-syntax för att förstärka det. För mer information, se den här frågan .



  1. DATEDIFF-funktion i Oracle

  2. Mysql-databassynkronisering mellan två databaser

  3. Ta bort alla dubbletter av rader utom en i MySQL?

  4. Ändringar av Oracle-gränssnittet