admin

匹配两个字段并具有另一个公共字段的MySQL查询

sql

我有一个像这样的SQL表:

id |  f1 | f2
 1 |  a  | hi
 2 |  a  | sup
 3 |  b  | hi

我需要一个查询来获取f2 = hi或f2 = sup的行,但前提是f1在两行中都具有相同的值。所以我的查询将获取ID 1和ID 2,但不是3

所以基本上这个-

SELECT * FROM `table` WHERE (`f2` = 'hi' OR `f2` = 'sup') AND 'f1-is-the-same'

阅读 196

收藏
2021-06-07

共1个答案

admin

SELECT *
    FROM YourTable t1
        INNER JOIN YourTable t2
            ON t1.f1 = t2.f1
    WHERE t1.f2 = 'hi'
        AND t2.f2 = 'sup'
2021-06-07