2013-06-27 2 views
-2

Я знаю определение внутреннего соединения, полного внешнего соединения, левого (внешнего) соединения, правого (внешнего) соединения и перекрестного соединения. Но когда мы должны использовать их? Может ли кто-нибудь назвать какой-то пример?Какова ситуация, в которой мы можем использовать INNER JOIN, LEFT/RIGHT JOIN, CROSS JOIN

Не говорите мне, что они привыкли к классу ..;)

Спасибо!

+1

Когда они имеют смысл. И на самом деле это действительно будет иметь смысл при работе с реальной ситуацией - кардинальность отношений часто играет огромный фактор. Просто имейте в виду, что они разные операции; вы увидите, как они работают: D – user2246674

+2

Прежде всего, прочитав ответ на http://stackoverflow.com/questions/38549/difference-between-inner-and-outer-join – thursdaysgeek

+0

Ну, это теоретический вопрос. Почему бы вам не хотеть, чтобы другие люди обсуждали это здесь ?! – sommcewce

ответ

2

См: http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

Большинство присоединяется только управление различными наборами данных.

  • Inner присоединиться, когда я хочу, данные, соответствующие в обоих наборах
  • внешнее соединение, когда я хочу, чтобы все данные из обоих наборов независимо, если они соответствуют
  • Выравнивание по левому краю является все данные из одного набора и только соответствие данные из другой установить
  • право присоединиться (То же, что осталось, но средства включают в себя все даты из таблицы справа от права присоединиться и только те данные, которые соответствуют на левой стороне.
  • Крест присоединиться все данные rel а также для всех данных в обоих наборах , генерирующих полный декартов продукт

Поэтому, когда их использовать, зависит от того, какие данные вы хотите вернуть.