sql >> Databasteknik >  >> RDS >> Mysql

Förstå Natural Join i SQL

Det här är för långt för en kommentar. Använd inte naturliga sammanfogningar. Bry dig inte om att lära dig naturliga sammanfogningar. De är en styggelse.

Varför? Anslutningsvillkoren är baserade på kolumner med samma namn . Naturliga sammanfogningar tar inte ens hänsyn till deklarerade främmande nyckelrelationer. Detta kan vara ganska farligt. Eller -- i mitt fall -- eftersom nästan alla mina tabeller har CreatedAt och CreatedBy , de är värdelösa ändå.

Ange istället join nycklar. I ditt fall (eftersom du har select * ), den using klausul är mest lämplig:

SELECT * 
FROM R JOIN
     S
     USING (A, B);

Detta har också fördelen att nycklarna explicit visas i frågan, vilket avsevärt minskar utrymmet för fel.



  1. Azure SQL Database Administration Tips and Hints Exam (DP-300)

  2. MySQL - Hur man infogar i en tabell som har många-till-många-relation

  3. Hur tar man mysqldump med UTF8?

  4. MariaDB MaxScale Load Balancing på Docker:Hantering:Del två