Mysql - 只有来自一列的值匹配来自其他列的所有行

时间:2014-01-22 13:40:13

标签: mysql sql

我从来没有在这里问过,因为我一直认为谷歌技能比打扰周围的人更好......而且我无法在任何地方找到它...也许我的谷歌技能不是那么好,那么......但我真的不知道如何完成这件事。

图片如上:

DELIVER_METHOD_CODE | PRODUCT_CODE
1                   | 909
1                   | 4
2                   | 4
我只需要匹配来自socond列的所有值的第一列中的值...

有没有人知道怎么做? d;

为了达到这个目的,我的查询是这样的:

select DELIVER_METHOD_CODE,PRODUCT_CODE
from DELIVER_METHOD_TABLE
right join PRODUCT_TABLE on PRODUCT_TABLE.PRODUCT_ID = DELIVER_METHOD_TABLE.PRODUCT_ID

抱歉英文不好

EDIT1:

输出应该如何

DELIVER_METHOD_CODE | PRODUCT_CODE
1                   | 909
1                   | 4

1 个答案:

答案 0 :(得分:0)

这是“set-within-sets”子查询的示例。我认为最灵活的方法是使用带有having子句的聚合:

select DELIVER_METHOD_CODE
from DELIVER_METHOD_TABLE
group by DELIVER_METHOD_CODE
having count(distinct PRODUCT_CODE) = (select count(distinct PRODUCT_CODE)
                                       from DELIVER_METHOD_TABLE
                                      );