这是我的情况:可能与光标/加入有关的问题
表1包含一组使用唯一标识符的数据。这张表与其他大约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