2012-12-14 75 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確實會更好,如果情況確實如此,你的查詢將會起作用。我只是指出它不適用於這種情況。 –