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

Selecting where keywords match both values but in different rows

我正在尝试 return what id contains both keywords。例如我的数据是:

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

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

它 return 我假设有 0 个结果匹配,因为它希望它们在同一行,而我想要的只是它们是否都与相同的 fID 连接。

如果我执行 OR 而不是 AND,它会显示不包含两者的 fID。

我希望结果输出 fID 1。我一直在各种地方乱搞 brakets 和 group by 但在这方面没有取得任何成功。

未经测试,但您可以尝试这样的操作:

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