SQL - 需要帮助根据行过滤结果
我有一个如下所示的表:
p_id | comp_id
-----+--------
100 | 1
100 | 2
101 | 1
102 | 1
基本上,可以根据需要多次将 p_id
输入到表中,以获得任意数量的 comp_id
。
我需要的是选择 comp_id
1 和 2 上的所有 p_id
。在上表中,这意味着只有 p_id == 100< /code> 将被返回。
有没有有效的方法来做到这一点?
I have a table that looks like this:
p_id | comp_id
-----+--------
100 | 1
100 | 2
101 | 1
102 | 1
Basically, the p_id
can be entered multiple times into the table for as many comp_id
as needed.
What I need is to select all the p_id
s that have been on comp_id
1 and 2. In the above table, that would mean only p_id == 100
would be returned.
Is there an efficient way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
确保您的 IN 包含与 HAVING 子句中的 int 相同数量的值。
Ensure your
IN
contains the same number of values as the int in theHAVING
clause.这个怎么样:
How about this:
或
假设 #t 是下表(您正在搜索的 comp_id):
or
assumig #t is the following table (the comp_id's you're searching for):
这种方式可能会起作用,但似乎效率很低
this way would probably work but it seems pretty inefficient