2013-05-06 23 views
1
SELECT * FROM TAB1 WHERE (ID1,ID2) IS IN (SELECT ID1,ID2 FROM TAB2) 

ID1和ID2是TAB1和TAB2, 兩個主要關鍵,我們可以用一個主鍵,但如何做到這一點用做2主鍵SQL語句,嵌套查詢與兩個鍵

+2

只需加入兩個標準...'選擇*從Tab1 t1加入Tab2 t2在t1.ID1 = t2.ID1和t1.ID2 = t2.ID2' – 2013-05-06 19:48:43

+0

如果刪除「IS」關鍵字,則它是有效的ANSI SQL。 – 2013-05-06 19:48:59

+0

@a_horse_with_no_name:哪個SQL Server不支持 – Quassnoi 2013-05-06 19:49:18

回答

2
SELECT * 
FROM tab1 
WHERE EXISTS 
     (
     SELECT NULL 
     FROM tab2 
     WHERE tab2.id1 = tab1.id1 
       AND tab2.id2 = tab1.id2 
     ) 
+0

'SELECT NULL'在那種情況下工作?我認爲你至少需要'SELECT tab2.id1,tab2.id2 ...' – 2013-05-06 20:12:20

+1

@ coge.soft:試試吧 – Quassnoi 2013-05-06 20:18:16

+2

在存在或「不存在」時,它通常使用「select null」或「select 0「或」選擇1「。我也使用「select null」。 Quassnoi是正確的。 「嘗試一下」。 – granadaCoder 2013-05-06 20:20:23