* = в Sybase SQL - PullRequest
       27

* = в Sybase SQL

9 голосов
/ 03 сентября 2008

Я поддерживаю некоторый код, который использует оператор * = в запросе к базе данных Sybase, и не могу найти документацию по нему Кто-нибудь знает, что делает * =? Я предполагаю, что это своего рода соединение.

select * from a, b where a.id *= b.id

Я не могу понять, чем это отличается от:

select * from a, b where a.id = b.id

Ответы [ 5 ]

13 голосов
/ 03 сентября 2008

С http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc34982_1500/html/mig_gde/mig_gde160.htm:

Внутренние и внешние столы

Термины внешняя таблица и внутренняя таблица описывают размещение таблиц во внешнем соединении:

  • В левом соединении внешняя таблица и внутренняя таблица являются левой и правой таблицами соответственно. Внешняя таблица и внутренняя таблица также называются таблицами сохранения строк и нулевыми значениями соответственно.

  • В правом соединении внешняя таблица и внутренняя таблица являются соответственно правой и левой таблицами.

Например, в следующих запросах T1 - внешняя таблица, а T2 - внутренняя таблица:

  • T1 левое соединение T2
  • T2 правое соединение T1

Или, используя синтаксис Transact-SQL:

  • T1 * = T2
  • T2 = * T1
9 голосов
/ 03 сентября 2008

Это означает внешнее соединение, простое = означает внутреннее соединение.

*= is LEFT JOIN and =* is RIGHT JOIN.

(или наоборот, я постоянно забываю, поскольку я больше им не пользуюсь, а Google не помогает при поиске * =)

6 голосов
/ 03 сентября 2008

Конечно, вы должны написать это так:

SELECT *
FROM a
LEFT JOIN b ON b.id=a.id

Синтаксис a, b является злом.

5 голосов
/ 03 сентября 2008

Синтаксис ANSI-82

select 
    * 
from 
    a
  , b 

where 
     a.id *= b.id

ANSI-92

select 
    * 
from 
   a
  left outer join b 
      on a.id = b.id
1 голос
/ 03 сентября 2008
select * from a, b where a.id = b.id

Требуется наличие строки, в которой b.id = a.id для возврата ответа

select * from a, b where a.id *= b.id

Заполнит столбцы из b нулями, если в b не было строки, где b.id = a.id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...