我对这个sql查询非常感兴趣。
我需要得到一个表中所有不同的单词,其中元素的id在一个数组中。
word | element_id
------+-----------
cat | 1
dog | 1
cat | 2
dog | 2
rat | 1
rat | 3
我想找出所有的词都有相同的意思 element_id
1和2的。
在这种情况下,我想归还猫和狗,但不是老鼠。
我试过了,但没用。 select distinct word from words where element_id = 1 and element_id = 2
2条答案
按热度按时间kninwzqo1#
一种选择是使用
avg
以及sum
聚合函数grouping
选择包含having
条款如下:假设
element_id
是可为空的整数列。或者
作为
element_id
是不可为空的整数列。p、 这样,就不需要显式地编写id。
6vl6ewon2#
你可以用
group by
以及having
:这假设您的表没有重复的行。
如果性能是一个问题,那么:
这可以利用上的索引
words(word, element_id)
以及words(element_id)
(两个单独的索引)。