如何在多个表中检查ID值

时间:2011-09-27 12:08:04

标签: c# asp.net sql-server

if not exists(SELECT 1 FROM MYTABLE1 WHERE ID=@ID)

BEGIN

END

我想在MYTABLE2中检查这个ID值。我应该怎么写IF条件?我想检查两个表中的任何一个都不存在某个ID。

4 个答案:

答案 0 :(得分:3)

您可以使用UNION ALL

IF NOT EXISTS (SELECT 1 FROM
                        (SELECT ID FROM MyTable1
                         UNION ALL
                         SELECT ID FROM MyTable2) Table
               WHERE ID = @ID)
BEGIN
...
END

答案 1 :(得分:3)

您可以执行以下操作:

if (not exists(SELECT 1 FROM MYTABLE1 WHERE ID=@ID)) 
     AND (not exists(SELECT 1 FROM MYTABLE2 WHERE ID=@ID))

BEGIN

END

答案 2 :(得分:0)

取决于你想要的东西 -

如果要检查其中一个表中是否存在该ID,请使用UNION ALL。你可以使用JNK的答案。

如果要检查两个表中是否存在ID,请使用INNER JOIN。

如果不存在     (从table1中选择top 1作为内连接                 表2 b在a.ID = b.ID上,其中a.ID = @ID) 开始 END

希望这会有所帮助。

答案 3 :(得分:-1)

SELECT
    blah.ID
FROM
    MYTABLE1 as blah
WHERE
    blah.ID IN (some range of ints)

如果没有结果,那么你知道它不存在