Member 10281217 Ответов: 1

Перебор записей, возвращаемых запросом


У меня есть запрос, который возвращает несколько записей. Результат запроса имеет столбец "ACCTID". Теперь для каждой записи мне нужно взять ACCTID и извлечь запись из другой таблицы. Я попробовал это сделать в C#, но с помощью цикла, но это занимает много времени. Пожалуйста, предложите мне, как сделать то же самое на стороне SQL server.

Обзор запроса выглядит следующим образом:



Основной запрос:

Select NAME, CANCEL_DATE..., ACCTID from Table1;



Что мне нужно сделать для этого ACCTID теперь это выборка данных из двух других таблиц для ACCTID извлеченный сверху основной запрос

:

select * from table2 where ACCTID=@ACCTID 


select * from table3 where ACCTID=@ACCTID



В конце концов мне нужно вернуть все записи, извлеченные из вышеприведенных двух запросов.

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

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

Richard MacCutchan

Рассматривали ли вы возможность использования хранимой процедуры?

1 Ответов

Рейтинг:
2

OriginalGriff

Используйте соединение:

SELECT a.Name, a.Cancel_Date, b.*, c.* FROM Table1 a
JOIN Table2 b ON a.ACCID = b.ACCID
JOIN Table3 c ON a.ACCID = c.ACCID
WHERE a.ACCID = @ACCID


W∴ Balboos, GHB

В целом, и немного выходя за рамки вопроса, было бы хорошей идеей добавить к этому отдельную директиву? Не зная, как выглядят данные, существует вероятность любого количества повторяющихся записей (особенно если в таблице 2 или таблице 3 нет уникального поля типа id'ish)?

Конечно, им могут понадобиться дубликаты.

OriginalGriff

Как вы говорите, это зависит от того, что именно они пытаются сделать!