我有一个包含两列的表(与我的问题相关) - 公司和产品。 它向我提供了有关哪些公司使用多种产品的信息。
例如,假设我想检索所有使用Microsoft Office的公司,我将使用条件查询 - 产品= Microsoft Office。
现在,我的问题 - 我需要构建一个查询来检索所有使用两个产品的公司,而不只是一个。 我该如何构建查询? 我认为应该使用子查询吗?因为SQL需要做两个查询 - 一个我想要的每个产品,而不是两个查询相交,以便找到两个列表中的公司......
非常感谢帮助者!
答案 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');