Mysql检查其他行是否具有基于另一个查询结果的相同值

时间:2014-03-28 03:13:59

标签: mysql

美好的一天。 作为一个例子,我有一个表有2个字段refid和校验和

我想获得校验和与特定ID匹配的所有refid

|refid|checksum|

|1    | abc

|2    | def

|3    | hij

|4    | def

|5    | hij

然后我想要匹配的refid。所以,如果我已经补偿2 我想获得与匹配2

的行的校验和列相匹配的所有行

我会做两个查询

Select Checksum FROM t1 WHERE refid = 2
SELECT * FROM t1 WHERE checksum = <result of query 1>

我想在一个查询中执行此操作

1 个答案:

答案 0 :(得分:3)

你可以用两种方式做到这一点

通过 IN

SELECT * FROM t1 WHERE checksum IN
             (Select Checksum FROM t1 WHERE refid = 2)

或者:

通过 LIMIT

SELECT * FROM t1 WHERE checksum =
             (Select Checksum FROM t1 WHERE refid = 2 Limit 1)