2013-07-17 101 views
-1

任何人都可以幫我一下。如何使用主 - 外鍵概念來檢查多個表格

我用這個基本的腳本我的目標:

http://www.aspsnippets.com/Articles/Check-UserName-Availability-in-ASP.Net-using-JQuery.aspx

現在我想達到什麼是

,它應該檢查在相同的用戶名3個表,並確認顯示:

在哪它存在並且它不存在。

那麼如何來實現這一目標,誰能告訴我我想到到:

做一個表(4日)與主鍵的用戶名和它將包含用戶名。

現在在其他3個表中,我將這些表用戶名作爲外鍵並將第4個表用戶名與它連接起來。

現在我的問題是:什麼存儲過程函數來調用來實現該目標?

+0

你可以發佈你已經嘗試了什麼? –

+2

外鍵概念不適用於檢查存在的行 - 這是爲表的ENFORCING規則。在你的情況下,爲什麼不使用簡單的查詢? – VikciaR

回答

2
select t1.Name as name1, t2.Name as name2, t3.Name as name3 from Table1 t1 
full outer join Table2 t2 on t1.Name = t2.Name 
full outer join Table3 t3 on t1.Name = t3.Name OR t3.Name = t2.Name 
+0

哇這就是我正在尋找..但一個簡單的最後一個問題..如何顯示基於該查詢結果.. –

+0

其中一種可能性:http://asp-net-example.blogspot.com/2008/11 /aspnet-sqlcommand-example-how-to-use.html – VikciaR

0

你可以用下面的查詢嘗試。

如果希望每個表的行:

SELECT 'Table1' AS Tbl, COALESCE((SELECT 'Yes' FROM Table1 WHERE Name = 'Joe'),'No') AS Exist 
UNION ALL 
SELECT 'Table2', COALESCE((SELECT 'Yes' FROM Table2 WHERE Name = 'Joe'),'No') AS Exist 
UNION ALL 
SELECT 'Table3', COALESCE((SELECT 'Yes' FROM Table3 WHERE Name = 'Joe'),'No') AS Exist 

或者,如果你想單排和各表的列

SELECT 
    CASE WHEN t1.Name IS NULL THEN 'No' ELSE 'Yes' END as Table1 
    ,CASE WHEN t2.Name IS NULL THEN 'No' ELSE 'Yes' END as Table2 
    ,CASE WHEN t3.Name IS NULL THEN 'No' ELSE 'Yes' END as Table3 
FROM Table1 t1 
FULL JOIN Table2 t2 ON t1.Name = t2.Name 
FULL JOIN Table3 t3 ON t1.Name = t3.Name OR t3.Name = t2.Name 
AND t1.Name = 'Joe' AND t2.Name = 'Joe' AND t3.Name = 'Joe' 

SQLFiddle DEMO

+0

非常感謝好友,我需要什麼.. :)但使用asp如何查看網格或東西? –

+0

任何人都可以告訴我如何檢查用戶填寫文本框後按鈕單擊此代碼? –

+0

@JohnKim使用您發佈的鏈接中的示例。只需將此代碼存儲在存儲過程('spx_CheckUserAvailability')中,而不是在那裏提供的代碼。 –