我正在使用VS2005和SQL Server 2005。
我正在尝试在两个sql表上执行多个sql语句,这意味着我需要对两个表进行多次检查。
这两个表是:
表1 : UserID ,用户名。
表2 :用户ID ,状态。
以下是我需要执行的检查,但我不知道我需要的确切SQL查询是什么。
Table1 中的用户应存在于 Table2
Table1 中存在的用户 Table2
STATUS=DELETE
STATUS=DELETE
的用户应存在于 Table1 我是否知道如何在SQL查询中进行此检查并在VS Sqldatasource中执行它们?
之后将结果存储在变量中并在GridView表中显示它们。
非常感谢您的帮助。
答案 0 :(得分:1)
所以你想要抓住3个案例:
下面的WHERE子句按顺序介绍了这三种情况。
SELECT *
FROM table1 t1
FULL OUTER JOIN table2 t2 ON t1.userid = t2.userid
WHERE (t2.userid IS NULL AND t1.userid IS NOT NULL)
OR (t2.status = 'DELETE' AND t1.userid IS NOT NULL)
OR (t2.userid IS NOT NULL AND t2.status <> 'DELETE' AND t1.userid IS NULL)
编辑:为了回应OP的评论,这里是一个修改后的版本,它将根据案例#1将数据插入table3
。假设table3
是一个包含两列userID
和problem
的表。
INSERT INTO table3
SELECT userID, 'No Matching Table2 Record'
FROM table1 t1
FULL OUTER JOIN table2 t2 ON t1.userid = t2.userid
WHERE (t2.userid IS NULL AND t1.userid IS NOT NULL)
答案 1 :(得分:0)
您希望在join
上UserID
表1和2并排除删除状态。然后在网格视图中使用结果。
select t1.UserID, t1.Username
from Table1 t1
join Table2 t2 on t1.UserID = t2.UserID
where t2.Status != 'DELETE'