2011-06-29 70 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.在这里你说的是相反的。如果你不能为表结构提供一些数据和你想要的输出,你将不会得到任何帮助。没有人能猜出你脑子里的想法。 –

相关问题