1

我有两个表,UserInfo(PrimaryKey= UID)和Relationships(PrimaryKey= RID,ForeignKey= UID)。关系数据示例:

| 识别码 | 摆脱 |

| 2 | 3 |

| 3 | 4 |

现在,在执行一个 sql 查询之后,它会对关系表执行一些排序,例如:

"select RID from Relationships where UID= "value"
UNION select UID from Relationships where RID= "value " 

如果值 = 3,我得到整数值,例如 2 、 4 (这意味着 3 与 2 和 4 有关系)

如果 value = 4,result = 3(4 只与 3 有关系)

等这些结果值是UserInfo表的 PrimaryKey 值。

我想要做的是获取具有UID= 23,25,34 的用户的信息(这些值是第一个 SQL 查询的结果,因此值和值的数量每次都会根据传递给第一个 SQL 查询的值而变化) 并将其与 asp Gridview 绑定。

为此,我想我将不得不执行多个 sql 查询,例如

select * from UserInfo where UID= 2

select * from UserInfo where UID= 4

ETC

使用循环。

我认为我应该做的是遍历第一个sql查询的结果,根据它执行第二个查询并将结果记录集保存在另一个表或任何类型的数据源中,最终绑定到gridview ...但我不知道怎么实现。。

这是我在 StackOverflow 中的第一个问题。如果有必要,我会尽力进一步澄清问题。

任何帮助将不胜感激..!:)

4

1 回答 1

1

您可以使用 SQL 连接

select a.RID from Friendships a inner join Relationships b on a.uid=b.uid 
where a.UID= "value" & b.RID="value"
order by a.uid

这将为您提供表 A 和 B 中存在的所有记录。有关 SQL 连接的更多信息

无需循环,因为您可以在单个 SQL 语句中执行查询,例如

select * from UserInfo where UID IN (23, 25, 34);

简而言之,select * from table这通常是一种不好的做法,您可能希望将其替换为您的列名

于 2013-04-29T19:12:41.107 回答