选择关键字匹配两个值但在不同行中的位置
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
我正在尝试 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