Asp.net 如何使用主外键概念检查多个表

Asp.net 如何使用主外键概念检查多个表,asp.net,sql,Asp.net,Sql,谁能帮我一点忙吗 我使用这个基本脚本来实现我的目标: 现在我想实现的是,它应该在3个表中检查相同的用户名,并确认显示: 它在哪个表中存在,在哪个表中不存在 那么,如何实现这一目标,谁能告诉我我正在考虑: 制作一个以主键作为用户名的表(第四个),它将包含用户名 现在,在其他3个表中,我将这些表的用户名设置为外键,并将第4个表的用户名与其链接 现在我的问题是:要实现这个目标,需要调用什么存储过程函数?您可以尝试以下查询 select t1.Name as name1, t2.Name as nam

谁能帮我一点忙吗

我使用这个基本脚本来实现我的目标:

现在我想实现的是,它应该在3个表中检查相同的用户名,并确认显示:

它在哪个表中存在,在哪个表中不存在

那么,如何实现这一目标,谁能告诉我我正在考虑:

制作一个以主键作为用户名的表(第四个),它将包含用户名

现在,在其他3个表中,我将这些表的用户名设置为外键,并将第4个表的用户名与其链接


现在我的问题是:要实现这个目标,需要调用什么存储过程函数?

您可以尝试以下查询

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
如果要将每个表作为行,请执行以下操作:

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'

您可以发布您尝试过的内容吗?外键概念不是用于检查现有的行,而是用于强制执行表的规则。在你的情况下,为什么不使用简单查询呢?哇,这就是我要找的。。但最后一个简单的问题。。如何显示基于该查询的结果..其中一种可能性:非常感谢buddy正是我所需要的..)但是使用asp如何在网格或其他地方查看它?有人能告诉我在用户填写文本框后如何在按钮点击上检查此代码吗?@JohnKim使用您发布的链接中的示例。只需将此代码放在存储过程(
spx\u CheckUserAvailability
)中,而不是存储过程中提供的代码。嗯,好的。。我将在几个小时内尝试更新它。。我刚刚得出了同样的解决办法。。感谢您的回复,尽管bro:Dso我想我需要运行用户名来代替查询中的“Joe”: