2011-06-29 68 views
1

使用SELECT,我想查找3列的行ID(每個值都是唯一/不相似的,並且由單獨的表填充)。只有ID自動遞增。sql - 根據同一行中的兩列值選擇行ID,編號爲

我有一箇中間表我引用具有3個值:ID,A,B。

  • A基於從另一表中的數據。
  • B基於另一個表中的數據。

當我只知道A和B的值,而A和B不是相同的值時,如何選擇行ID?

+2

對於什麼數據庫? TSQL意味着Sybase或Microsoft SQL Server。版本也會有所幫助。 –

+1

你想把三張桌子連在一起嗎? – Dirk

+1

的ID與ROW ID相同,或者您在尋找行號?你在尋找不同的行或行,其中a和b是不同的?什麼是所有獎勵獎勵? –

回答

2

你的意思是列A和B是外鍵?

這是行不通的?

SELECT [ID] 
FROM tbl 
WHERE A = @a AND B = @b 
1
SELECT ID FROM table WHERE A=value1 and B=value2 
1

這不是很清楚。你的意思是這樣的:

SELECT ID 
FROM middletable 
WHERE A = knownA 
    AND B = knownB 

或那樣嗎?

SELECT ID 
FROM middletable 
WHERE A = knownA 
    AND B <> A 

或者「我知道A」意味着你有一個A的值列表,它來自另一個表?

SELECT ID 
FROM middletable 
WHERE A IN 
     (SELECT otherA FROM otherTable ...) 
    AND B IN 
     (SELECT otherB FROM anotherTable ...) 
+0

很好的例子,但是這裏的障礙是我不知道A和B的值,而我選擇了x行的數量。我周圍的唯一方法是通過使用一個帶有我不想做的變量的循環。 – tdjfdjdj

+0

@ user719825:在問題中你說你知道A和B.在這裏你說的是相反的。如果你不能爲表結構提供一些數據和你想要的輸出,你將不會得到任何幫助。沒有人能猜出你腦子裏的想法。 –

相關問題