0

私は今混乱しており、誰かがここで私を助けてくれると嬉しいです.table1から選択した値をtable2の値とともに表示したいのですが、sql2の3つのレコードだけを取得する代わりに、table2の出力は同じ3つのレコードを与えます. .

SQL アナライザーに両方のクエリを入力すると、正常に動作します。目標は、従来の asp を使用して sql1 と sql1 の出力を 3 行の 1 つのループで取得することです。

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

手順:最初にクエリ(sql1)を実行し、その後(sql2)を実行する必要があります。これは、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

なぜだめですか:

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 に答える
0

ビュー関数を使用して保存し、asp を使用して呼び出します。

于 2013-01-08T04:45:30.383 に答える
0

あなたのコードでは、この行を置き換える必要があるようです

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

rs("username") へのある種の参照を含む「user1」。あなたが持っているコードでは、table1 の各レコードに対して table2 から同じレコードを取得します。

于 2013-01-08T14:38:45.797 に答える