Member 13019612 Ответов: 2

Запрос обновления для таблицы 2


Всем Привет
у меня есть этот запрос ниже
string updateReq = "UPDATE Student SET Student.ID_Request = Request.ID_Request FROM Request where Student.St_Code=Request.St_Code   INNER JOIN  Request ON Student.ID_Request = Request.ID_Request";


но когда я оправдываю это я получаю эту ошибку :
The objects "Request" and "Request" in the FROM clause have the same exposed names. Use correlation names to distinguish them.


как я могу решить эту проблему ?

Что я уже пробовал:

я попытался выбрать записи в таблице temp, но это не работает, или, может быть, я делаю это неправильно

string select = "SELECT * INTO #TempTable FROM Student s where ID_Request IS NULL";

string updateReq = "UPDATE TempTable SET s.ID_Request = Request.ID_Request FROM Request where Student.St_Code=Request.St_Code   INNER JOIN  Request ON Student.ID_Request = Request.ID_Request";


когда я вычеркиваю эти строки, я получаю ту же ошибку

Santosh kumar Pithani

Не публикуйте такой вопрос: "условие filter(where) всегда приходит после join.

2 Ответов

Рейтинг:
20

Santosh kumar Pithani

UPDATE Student SET Student.ID_Request = R1.ID_Request
     FROM Request R1  
          INNER JOIN Request R2 
             ON (Student.ID_Request = R2.ID_Request) 
          INNER JOIN  Student 
             ON (Student.St_Code=R2.St_Code) 


Рейтинг:
0

CHill60

Вы должны различать два экземпляра одной и той же таблицы. Я постараюсь помочь, но я делаю это по телефону...

string updateReq = "UPDATE Student SET Student.ID_Request = R1.ID_Request FROM Request R1 where Student.St_Code=Request.St_Code INNER JOIN Request R2 ON Student.ID_Request = R2.ID_Request";
Я не могу проверить это, но обратите внимание, что я дал таблицам псевдонимы.