选择关键字匹配两个值但位于不同行的位置

时间:2017-12-11 11:58:38

标签: sql postgresql relational-division

我试图返回id包含两个关键字。例如,我的数据是:

|fID|keyword|
|1  |word1  |
|1  |word2  |
|2  |word1  |
|3  |word2  |

如果我执行SQL SELECT fID FROM table WHERE keyword = 'word1' AND keyword = 'word2';

它返回0结果匹配我假设因为它希望它们在我想要的时候在同一行中,如果它们都用相同的fID连接。

如果我做OR而不是AND它显示了两者都没有的fID。

我希望结果能够输出fID 1.我一直在各个地方乱搞乱七八糟但却无法取得任何成功。

1 个答案:

答案 0 :(得分:0)

未经测试,但您可以尝试这样的事情:

SELECT fID 
FROM table 
WHERE keyword = 'word1' OR keyword = 'word2'
GROUP BY fID
HAVING COUNT(DISTINCT keyword) = 2