Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 The multi-part identifier "t1.task_id" could not be bound.  [new]
MSSQLAndDotNet
Member

Откуда:
Сообщений: 10398
Запрос такой
		SELECT t1.task_id
		FROM Tasks AS t1	
			INNER JOIN (SELECT st.task_owner
						FROM Tasks AS st
						WHERE st.task_parent = t1.task_id
								) AS t2 ON t2.task_owner = t1.task_owner

The multi-part identifier "t1.task_id" could not be bound.
Ошибка здесь
WHERE st.task_parent = t1.task_id


Могу переписать чз WHERE :), но интересно почему пишет что multi-part если везде алиасы есть.
Спасибо.
25 фев 16, 11:43    [18861294]     Ответить | Цитировать Сообщить модератору
 Re: The multi-part identifier "t1.task_id" could not be bound.  [new]
Glory
Member

Откуда:
Сообщений: 104751
SELECT t1.task_id
		FROM Tasks AS t1	
			INNER JOIN Tasks AS st ON st.task_parent = t1.task_id AND st.task_owner = t1.task_owner
25 фев 16, 11:45    [18861324]     Ответить | Цитировать Сообщить модератору
 Re: The multi-part identifier "t1.task_id" could not be bound.  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
MSSQLAndDotNet
Запрос такой
		SELECT t1.task_id
		FROM Tasks AS t1	
			INNER JOIN (SELECT st.task_owner
						FROM Tasks AS st
						WHERE st.task_parent = t1.task_id
								) AS t2 ON t2.task_owner = t1.task_owner


The multi-part identifier "t1.task_id" could not be bound.
Ошибка здесь
WHERE st.task_parent = t1.task_id



Могу переписать чз WHERE :), но интересно почему пишет что multi-part если везде алиасы есть.
Спасибо.
Внутри подзапроса в INNER JOINе имя другой таблицы или алиаса из этого же FROMа попросту неизвестно.
Это другая область видимости.
Начиная с SQL2005, существует оператор (CROSS|OUTER) APPLY специально для таких случаев. В нём так можно.
Однако, можно обойтись и JOINом, если его правильно написать.
25 фев 16, 11:55    [18861391]     Ответить | Цитировать Сообщить модератору
 Re: The multi-part identifier "t1.task_id" could not be bound.  [new]
MSSQLAndDotNet
Member

Откуда:
Сообщений: 10398
Всем спасибо. Вопрос снят.
Это тот случай когда нужно писать WHERE :)
25 фев 16, 13:48    [18862109]     Ответить | Цитировать Сообщить модератору
 Re: The multi-part identifier "t1.task_id" could not be bound.  [new]
Glory
Member

Откуда:
Сообщений: 104751
MSSQLAndDotNet
Это тот случай когда нужно писать WHERE :)

Не замарачивайтесь, пишите WHERE всегда.
25 фев 16, 13:51    [18862125]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить