Вот моя ситуация:
Таблица 1 содержит набор данных, которые используют идентификатор для уникального идентификатора. Эта таблица имеет отношение один ко многим примерно с 6 другими таблицами, так что
С учетом Таблицы 1 с Id 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 немного слаб, и я мог бы использовать некоторую помощь.