SQL - 构建某个查询(在两个条件之间相交)

时间:2017-06-07 08:51:00

标签: sql mysqli

我有一个包含两列的表(与我的问题相关) - 公司和产品。 它向我提供了有关哪些公司使用多种产品的信息。

例如,假设我想检索所有使用Microsoft Office的公司,我将使用条件查询 - 产品= Microsoft Office。

现在,我的问题 - 我需要构建一个查询来检索所有使用两个产品的公司,而不只是一个。 我该如何构建查询? 我认为应该使用子查询吗?因为SQL需要做两个查询 - 一个我想要的每个产品,而不是两个查询相交,以便找到两个列表中的公司......

非常感谢帮助者!

2 个答案:

答案 0 :(得分:1)

假设表中没有重复项,您可以执行以下操作:

SELECT COUNT(*), <name of the company column> FROM <table name> GROUP BY <name of the company column> HAVING COUNT(*) = 2;

修改 要弄清楚谁在使用两种特定产品,请改用:

SELECT COUNT(*), <name of the company column> FROM <table name> WHERE <name of product column> = '<name of 1st product>' OR <name of product column> = '<name of second product>' GROUP BY <name of the company column> HAVING COUNT(*) = 2;

答案 1 :(得分:1)

托马斯是对的并且添加了两个产品:

SELECT 
    COUNT(*),
    <name of the company column>,
    <name of the product column>
FROM
    <table name>
GROUP BY
    <name of the company column>
HAVING
    COUNT(*) = 2
    AND <name of the product column> IN ('product1', 'product2');