sql >> Databáze >  >> RDS >> Mysql

Pochopení přirozeného spojení v SQL

Toto je příliš dlouhé na komentář. Nepoužívejte přirozené spoje. Neobtěžujte se učením přirozených spojů. Jsou ohavnost.

Proč? Podmínky spojení jsou založeny na sloupcích se stejnými názvy . Přirozená spojení neberou v úvahu ani deklarované vztahy s cizím klíčem. To může být docela nebezpečné. Nebo -- v mém případě -- protože téměř všechny mé tabulky mají CreatedAt a CreatedBy , stejně jsou k ničemu.

Místo toho uveďte join klíče. Ve vašem případě (protože máte select * ), using klauzule je nejvhodnější:

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

To má také výhodu, že klíče jsou v dotazu explicitně zobrazeny, což značně snižuje rozsah chyb.



  1. zahrnout mysql do cmake

  2. LIMIT / OFFSET v Oracle 11G

  3. Zabijte dotaz MySQL při přerušení uživatele

  4. předat celočíselné pole do procedury Oracle pomocí c#