В хранимой процедуре, как я могу использовать результаты одного запроса для использования в другом - PullRequest
0 голосов
/ 03 февраля 2012

Я пишу хранимую процедуру, которая вернет много информации о проекте.Из-за структуры существующей БД было решено, что именно такой подход нам нужен.

Мой базовый запрос будет

Select * from Projects where ProjectID = @projectID

Это вернет что-то вроде

ProjectID || Name || Component1Type || Component2Type

После получения этих результатов я хочу запросить таблицы Component1 и component2 и вернуть имена этих компонентов с чем-то вроде

Select Component1.Name from Component1 where ComponentID = Component1Type (где это результат предыдущего запроса)

, который будет возвращать только имя

После выполнения этого для еще 3 или четырех элементов, я хочу добавитьони возвращаются к исходному запросу, поэтому я получаю одну строку, которая является

ProjectID || Name || Component1Type || Component2Type || Name1 || Name2 || etc...

Есть идеи, как это сделать?Я хочу использовать временные таблицы или есть более простой способ сделать это?

1 Ответ

3 голосов
/ 03 февраля 2012
Select P.*, C1.Name as Name1, C2.Name as Name2 
from Projects P
left join Component1 C1 
  on P.Component1Type = C1.ComponentID
left join Component2 C2 
  on P.Component2Type = C2.ComponentID
where P.ProjectID = @projectID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...