2011-10-16 14 views
0

使用SQL Server如何檢查條件中的2個值

我想檢查兩個表中的兩個值。

我有兩個整數值(值1,值2)

表1

ID Value 

001 200 
002 300 
... 

表2

ID Value 

001 300 
002 400 
... 

現在我要檢查值1和值2是否與表1的值和表2匹配值

嘗試查詢

SELECT value from table1 Where id = '" & textbox1.Text & "' 

條件

我要檢查數值1是否與表1或表2匹配,那麼值2與表1或表2匹配。如果匹配,則顯示值,否則顯示null。

如何進行查詢。

需要查詢幫助

+1

如果'value1 = 300'和'value2 = 400',查詢結果應該是什麼? –

+0

@Lieven。我想檢查兩個表中的兩個值。如何進行查詢。表1和表2中的第一個值檢查,表1和表2中的第二個值檢查 – Gopal

+1

仍然理解原始問題,但是你是否已經研究了聯接? http://en.wikipedia.org/wiki/Join_(SQL) – Citricguy

回答

1
SELECT 
    MAX(T1.ID) 
FROM 
    (
    SELECT TOP 1 ID 
    FROM table1 WHERE value = @Value1 
    ORDER BY ID 
    ) T1 
    JOIN 
    (
    SELECT TOP 1 ID 
    FROM table2 WHERE value = @Value2 
    ORDER BY ID 
    ) T2 ON T1.ID = T2.ID 

注:

對於最後一點,如果你想任何匹配

SELECT 
    MAX(1) 
FROM 
    (
    SELECT TOP 1 ID 
    FROM table1 WHERE value = @Value1 
    ORDER BY ID 
    ) T1 
    CROSS JOIN 
    (
    SELECT TOP 1 ID 
    FROM table2 WHERE value = @Value2 
    ORDER BY ID 
    ) T2 
0

通常我添加查詢作爲字符串不相連來..

「SELECT * FROM ... WHERE等ID = @ ID和networktag = @ networktag」

然後使用命令上的放慢參數(即在C#中的SqlCommand的實例) 這主要是使用C#與ID處理,我認爲容易VB做

希望這有助於

+1

您正確使用參數來避免SQL注入。但是,對於這個問題更具體的問題也許會更好。 – gbn

0

如果我理解正確,您可以使用UNION來完成此操作。

SELECT * 
FROM (
      SELECT ID, Value, 'Table1' AS Source 
      FROM Table1 
      UNION ALL 
      SELECT ID, Value, 'Table2' 
      FROM Table2 
     ) u 
WHERE u.Value IN (@Value1, @Value2) 
相關問題