Вот моя ситуация:Проблема, связанная с курсором/присоединением
В первой таблице содержится набор данных, в которых используется идентификатор для уникального идентификатора. Эта таблица имеет отношение «один-много» к примерно 6 другим таблицам.
Учитывая Таблицу 1 с идентификатором 001: таблицы 2 может иметь 3 строки с внешним ключом: 001 Таблицы 3 может иметь 12 строк с внешним ключом: 001 Таблицы 4 может иметь 0 строк с внешним ключом: 001 таблицы 5 может иметь 28 строк с внешним ключом: 001
Мне нужно написать отчет, в котором перечислены все строки из таблицы 1 за указанный период времени, за которым следуют все данные, содержащиеся в нескольких таблицах, ссылающихся на него.
Мой нынешний подход в псевдо-код будет выглядеть следующим образом:
select * from table 1
foreach(result) {
print result;
select * from table 2 where id = result.id;
foreach(result2) {
print result2;
}
select * from table 3 where id = result.id
foreach(result3) {
print result3;
}
//continued for each table
}
Это означает, что один отчет может работать в соседнем капот 1000 запросов. Я знаю, что это чрезмерно, но мой sql-fu немного слаб, и я мог бы использовать некоторую помощь.
какую базу данных вы используете это на? – chrisb 2008-09-19 15:43:54
Это псевдокод? Если нет, на каком языке? Для меня это не похоже на transact-SQL. Я бы предложил что-то, если бы знал формат ответа ... – 2008-09-19 15:44:14