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

Кой синтаксис на присъединяване е по-добър?

Е, "по-добре" е субективно. Тук има някакъв стил. Но ще отговоря директно на вашите въпроси.

  1. И двете изпълняват еднакво
  2. И двете са съвместими с ANSI.
  3. Проблемът с първия пример е, че

    • много лесно е неволно да се извлече кръстосаният продукт (тъй като е по-лесно да се пропуснат критериите за присъединяване)

    • също така става трудно да се отстранят грешки в критериите за присъединяване, когато добавяте все повече и повече таблици към присъединяването

    • тъй като синтаксисът за външно свързване в стар стил (*=) е остарял (отдавна е документирано, че връща неправилни резултати), когато трябва да въвеждате външни съединения, трябва да смесвате присъединения от нов стил и стар стил ... защо да популяризирате непоследователност?

    • макар че не е точно авторитетът за най-добрите практики, Microsoft препоръчва изричен синтаксис INNER/OUTER JOIN

    • с последния метод:

      • използвате последователен синтаксис на присъединяване, независимо от вътрешно/външно
      • по-трудно е (не е невъзможно) случайно да се получи кръстосаният продукт
      • изолирането на критериите за присъединяване от критериите за филтриране може да улесни отстраняването на грешки

Написах публикацията, която Кевин посочи.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 6 начина за конвертиране на низ в стойност на дата/час в SQL Server

  2. Заявката е неуспешна или услугата не е отговорила навреме?

  3. Начини за лесно възстановяване на основната база данни в SQL Server

  4. Как да върнете всички ненадеждни ограничения CHECK в SQL Server (пример за T-SQL)

  5. Преглеждайте историята на заданията на агент на SQL Server с Azure Data Studio