0

我现在很困惑,如果有人可以在这里帮助我,我会很高兴我希望从 table1 中选择的值与 table2 的值一起显示,但不是只为 sql2 获取 3 条记录,table2 的输出给了我相同的 3 条记录.

如果我在 sql 分析器中输入这两个查询,它工作正常。目标是使用经典的 asp 在 3 行,一个循环中获取 sql1 和 sql1 的输出:

line1 rs("firstname") & space(1) & rs("boss")
line2 rs("firstname") & space(1) & rs("boss")
line3 rs("firstname") & space(1) & rs("boss")

程序:我首先必须在(sql2)之后进行查询(sql1),这取决于sql1的结果

table1
id| |user| |firstname| |lastname| |acc|
1    user1   firstname1  lastname1 loc1
2    user2   firstname2  lastname2 loc2
3    user3   firstname3  lastname3 loc3
4    user4   firstname4  lastname4 loc1
5    user5   firstname5  lastname5 loc1

table2
id| |boss| |first_name| |username|
1     boss1  boss1email   user1 
2     boss2  boss2email   user2 
2     boss3  boss3email   user3
2     boss4  boss4email   user4
2     boss5  boss5email   user5

sql="select * from table1 where acc='loc1'"
Set rs=dbcon.Execute(sql)
do until rs.EOF
Response.Write rs("firstname")


Set rs1 = server.CreateObject ("adodb.recordset")
sql2="Select * from table2 where username='user1'"
set rs1=dbcon.execute(sql2)
do until rs1.eof

response.write rs1("boss")

rs1.movenext
loop

rs.movenext
loop<
4

3 回答 3

0

我已经使用了视图函数并保存了它并使用asp调用它。

于 2013-01-08T04:45:30.383 回答
0

似乎在你的代码中你需要在这一行替换

sql2="Select * from table2 where username='user1'"

带有某种对 rs("username") 的引用的 'user1'。使用您拥有的代码,您将从 table2 中为 table1 的每条记录获得相同的记录。

于 2013-01-08T14:38:45.797 回答
0

为什么不:

SELECT t1.firstname, t2.boss FROM table1 t1
JOIN table2 t2 on t1.user = t2.username
WHERE t1.acc ="loc1"
于 2013-01-08T03:01:05.633 回答