比较行与列值

时间:2015-10-06 13:09:14

标签: sql database sqlite

我试图弄清楚如何检索ID在另一列中具有特定值的所有行。

数据库如下所示:

Database Illustration

我想检索VAL为2的行和相应的ID行。所以在这种情况下,这将给我所有的ID 1行和ID 3行:

Database Illustration 2

3 个答案:

答案 0 :(得分:3)

你需要一个子查询(或连接或cte或派生表)子查询很容易可视化

从Test中选择*,其中ID为IN (来自Test的SELECT ID,其中VAL = 2)

答案 1 :(得分:2)

存在一种方法:

select t.*
from test t
where exists (select 1 from test t2 where t2.id = t.id and t2.val = 2);

答案 2 :(得分:1)

where id in (select id from ...)where exists (select 1 from ...)之类的构造可能需要很长时间,因为test中的每一行都在执行子查询。要解决您的问题,您可以将自己加入test并像这样distinct

SELECT DISTINCT t1.* 
FROM test t1
     INNER JOIN test t2 ON t1.id = t2.id
WHERE t2.val = 2