2013-04-16 4 views
2

Я только что взял инструкцию SQL, написанную кем-то пару недель назад (никто, кажется, не знает, кто).где {table1.field} * = {table2.field} синтаксис

Как часть заявления, в статье WHERE, они имеют что-то вроде: {table1.field} *= {table2.samefield}.

Что именно происходит здесь? Я предполагаю какое-то соединение, но что объединяет и почему и, в общем, почему кто-то помещает это в предложение WHERE?

+0

Как и язык программирования A * = B. ---> A = A * B; – SenthilPrabhu

+0

@Senthil Prabhu: Стоит подумать, но это фактически оператор внешнего внешнего соединения в Sybase (не ANSI). Точно так же, как Oracle имеет свою проприетарную (+) аннотацию к своему оператору объединения. Использование стандартного SQL-стандарта ANSI будет рекомендацией перекрестной СУБД. – wmorrison365

+0

@Ben: Если вы ищете в отношении ANSI, посмотрите http://stackoverflow.com/questions/3684259/sql-joins-future-of-the-sql-ansi-standard-where-vs-join – SenthilPrabhu

ответ

1

Это, кажется, от Sybase внешнего соединения аннотаций:

Включить в результатах всех строк из первой таблицы, а не только те, где присоединились колонки матча.

См: Sybase docs

0

Это SyBase присоединиться эквивалент оператора к более традиционным LEFT OUTER JOIN (или чаще, LEFT JOIN

См:. SyBooks Online - The WHERE clause

* =

Включить в результаты все t он строит из первой таблицы, а не только те, в которых совпадают объединенные столбцы.

В отличие от =* который является RIGHT OUTER JOIN (или более обычно RIGHT JOIN).

Смежные вопросы