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

Hvorfor viser SELECT * FROM tabel INNER JOIN..ON den krydsende søjle to gange?

Når du bruger ON people.address = home.address , det er bare en tilfældighed, at kolonnenavnene er de samme i begge tabeller -- ofte denne type ON betingelse matcher kolonner med forskellige navne. Duplikatkolonnerne filtreres ikke ud af resultatet, når du gør dette.

Men når du bruger USING (address) , skal kolonnenavnene være de samme i begge tabeller (da USING tillader dig ikke at relatere kolonner med forskellige navne). Da det åbenbart er overflødigt at have dem begge, filtreres dubletterne fra.



  1. Alternativ til lead lag-funktion i SQL Server 2008

  2. Java Date og MySQL tidsstempler tidszoner

  3. Registrering af rækker med den samme kombination af tal i de første to kolonner, og vælg den med det højeste tal i den tredje kolonne

  4. kører total ved hjælp af Windows-funktion i sql har samme resultat for samme data