选择同一行中的值但另一列相同的值

时间:2013-11-02 18:04:04

标签: sql sql-server

我无法编写此查询,请参阅列/数据:

ID  Type    Regnr   Samenr
1   Car      11     1
2   Plane    654    1
3   Bycicle  1311   1
4   Plane    232    2
5   Car      18     2
6   Bycicle  16     2
7   Motorcycle 13   2

对于我收到的[ID]号码,我想选择[Regnr],其中值[Samenr]和WHERE [Type] ='Plane'中的值相同。 因此,如果WHERE [ID] = 2,结果将为654.或者如果WHERE [ID] = 1,我再次得到654作为结果。如果WHERE [ID] = 7,则结果应为232。

1 个答案:

答案 0 :(得分:1)

您可以使用自我加入

SELECT t2.regnr
  FROM table1 t1 JOIN table1 t2
    ON t1.samenr = t2.samenr
   AND t2.type = 'Plane'
 WHERE t1.id = ?

这是 SQLFiddle 演示