Re[2]: невозможно привязать к таблице кот. участвует в =* MS
От: vlaban  
Дата: 07.02.09 09:49
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>Выкинте это Г куда подальше из запроса, его уже скоро парсер тупо

MZ>понимать перестанет.
MZ>Или у вас старый MSSQL ? Не, не может быть....

MZ>Это изза того, что у вас используется derived table (подзапрос во FROM),

MZ>в котором обычный JOIN, не внешний. Он раскрывается и получается
MZ>фигня.

MZ>Перепишите запрос без подзапроса во FROM и через ANSI JOINs,

MZ>напишите хотя бы без left join, если не сможете с ним написать.
MZ>Я покажу, как сделать left.

База MS SQL 2000

Собственно я и пытаясь уйти от этой ошибки соорудил внутренний запрос во FROMе
вот без него

SELECT c_event.d_ev,
c_event.c_event,
C_EVENT.c_cus_se,
c_event.c_event,
lpu.customer
FROM dbo.c_event,
ic_as.dbo.m_doc_sr,
ic_as.dbo.c_custom lpu
WHERE m_doc_sr.c_event =* c_event.c_event
AND m_doc_sr.c_cus_my = LPU.c_custom


Говорю, спасибо, бо получилось, собственно вот запрос: (два раза выводится c_event с двух таблиц, потому что есть такие c_event.c_event кот.нет в таблице m_doc_sr)
собственно вот оно, решение:

SELECT c_event.d_ev,
c_event.c_event,
m_doc_sr.c_event,
C_EVENT.c_cus_se,
c_event.c_event,
lpu.customer
FROM dbo.c_event LEFT OUTER JOIN ic_as.dbo.m_doc_sr ON m_doc_sr.c_event = c_event.c_event
LEFT JOIN ic_as.dbo.c_custom lpu ON m_doc_sr.c_cus_my = LPU.c_custom
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.