Mysql
 sql >> база данни >  >> RDS >> Mysql

Разбиране на естественото присъединяване в SQL

Това е твърде дълго за коментар. Не използвайте естествени съединения. Не се притеснявайте да изучавате естествени съединения. Те са мерзост.

Защо? Условията за присъединяване се основават на колони със същите имена . Естествените съединения дори не вземат предвид декларираните връзки с външни ключове. Това може да бъде доста опасно. Или – в моя случай – защото почти всичките ми таблици имат CreatedAt и CreatedBy , те така или иначе са безполезни.

Вместо това избройте join ключове. Във вашия случай (тъй като трябва да select * ), using клаузата е най-подходяща:

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

Това също има предимството, че ключовете са изрично показани в заявката, което значително намалява обхвата на грешки.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Сортирайте GROUP_CONCAT стойности

  2. VARCHAR срещу TEXT в MySQL

  3. защо разделяме една mysql таблица на много по-малки таблици?

  4. Разгръщане на ASP.NET уебсайт на Linux сървър

  5. PHP клас за пагинация