2012-12-14 47 views
1

我在我的SQL Server中有一个名为FavoriteUsers的表,其中包含一个用户列表和一个名为Users with all users的表。我该如何做select select

在我的ASPX页面中,我有一个TextBox,我的用户可以将用户的ID列在我的GridView中。

它是如何工作

默认情况下,我填补我的GridView我FavoriteUsers表的所有数据,如果我的系统的用户把一些用户代码的textbox域并单击我的按钮找到这些用户,我将重新加载GridView与收藏用户和他把TextBox字段来自表Users表中的用户。

我该怎么办SELECT查询?

+0

如果您告诉我们您的表格相关情况如何,我们可以帮助您进行查询,否则会进行猜测工作。 –

回答

1
select * from FavoriteUsers 
UNION 
select * from Users 
Where userid = 'TextBox.text' 

当然你不能在那里使用TextBox.text。但是你只需要查询,这样你就明白了。

备注:UNION将忽略来自用户的任何已记录在FavoriteUsers中的记录。所以你不会有重复的。

0

获取所有用户喜爱加上进入文本框,其用户名相匹配的用户:

SELECT Users.* 
FROM Users 
    LEFT JOIN FavoriteUsers ON Users.UserID = FavoriteUsers.UserID 
WHERE (FavoriteUsers.UserID IS NOT NULL) OR (Users.Username = @Username) 
+0

这不是他要求的。实际上是相反的。他希望所有的收藏用户以及用户在文本框中提供的userId记录。旁注:Imo他并没有在查询中包含验证(Not Null部分)。如果他愿意,他应该用javascript来做那个客户端。 –

+0

我想我对他的数据库设计做了一个不正确的假设。我想他会拥有Users表中的所有用户数据。 FavoriteUsers表将包含用户表的FK,以及一些其他信息,例如为什么他们是最喜欢的用户。在这种情况下,我指定的查询将工作得很好。在两个单独的表中有相同的用户数据不是一个好的设计。 – NYSystemsAnalyst

+0

同意。你所描述的Schema确实会更好,如果情况确实如此,你的查询将会起作用。我只是指出它不适用于这种情况。 –