Подтвердить что ты не робот

Что означает = * означает?

Я пытаюсь отслеживать некоторые SQL в Microsoft Server. Я наткнулся на соединение, которое использует незнакомое мне соглашение. Что означает "=*"?

WHERE table1.yr =* table2.yr -1
4b9b3361

Ответ 2

Я считаю, что это старый синтаксис, указывающий внешнее условие соединения из таблицы1 в таблицу2

Старый стиль:

SELECT * FROM table1, table2
WHERE table1.yr =* table2.yr -1

Новый стиль (SQL92):

SELECT * FROM table2 
LEFT OUTER JOIN table1 ON table1.yr = table2.yr - 1

Ответ 3

Это старый синтаксис стиля для выражения объединений

Ответ 4

Это означает, что код необходимо немедленно заменить! Это объединение стиля должно быть правильным соединением. К сожалению, это иногда интерпретируется как перекрестное соединение, поэтому результаты использования этого объединения могут быть неверными. Кроме того, этот синтаксис устарел и не может использоваться inteh следующей версией сервера SQl.

Ответ 5

Это синтаксис ANSI SQL 1989 для RIGHT OUTER JOIN, где * = будет LEFT OUTER JOIN.

Следует также отметить, что включение синтаксиса соединения в предложение WHERE устарело в SQL 2008. http://scarydba.wordpress.com/2009/09/15/no-join-predicate/ < == A своевременная статья об этом.

Ответ 6

Это старый стиль объединений, который устарел в ANSI SQL92. Новый синтаксис использует INNER и OUTER JOIN, которые объединяют таблицы на основе выражений, а не равенства

Ответ 7

A??? внешнее соединение задается с использованием символа = * вместо = в предложении WHERE.

Ответ 8

yeap, это еще один синтаксис для левого внешнего соединения

from
table1 left outer join table2 on table1.yr = table2.yr - 1

Ответ 10

Быть простым и простым. Это оператор внешнего соединения SQL-92 (подробнее)

Не используйте его, его очень старую школу, но она похожа на LEFT JOIN и RIGHT JOIN. Все его действия говорят, какая сторона соединения является стороной "Родитель", поэтому строки на этой стороне будут считаться первыми.

Если вы попытаетесь запустить это на SQL 2005, это вызовет ошибку, сказав, что вам нужно запустить это в режиме совместимости.

Ответ 11

Здесь много глупых ответов. Вы не предоставляли предложение FROM, так что не можете сказать, если ваш * = представляет LEFT или RIGHT внешнее соединение.

WHERE table1.yr =* table2.yr -1

- старый синтаксис для внешнего соединения. Но любой, кто утверждает, что ошибается, является ли это ВЛЕВО или ПРАВИЛЬНОЕ внешнее соединение. Это зависит от порядка, в котором table1 и table2 указаны в предложении FROM, и которые не заданы.