2017-06-07 54 views
0

我有一個表有兩列(與我的問題相關) - 公司和產品。 它向我提供有關哪些公司使用多個產品的信息。例如,假設我想檢索所有使用Microsoft Office的公司,我將使用條件 - 產品= Microsoft Office進行查詢。SQL - 建立某個查詢(兩個條件相交)

現在,我的問題 - 我需要建立一個查詢,將檢索我所有的公司正在使用兩個產品,而不只是一個。 我應該如何構建查詢? 我認爲它應該使用子查詢可能?因爲SQL需要做兩個查詢 - 一個用於我想要的每個產品,並且爲了找到兩個列表中的公司而交叉兩個查詢...

非常感謝幫助者!

+0

添加一些示例表格數據和預期的結果 - 所有以及格式化文本(而不是圖像)。同時向我們展示您當前的查詢嘗試。 – jarlh

回答

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; 
+0

而且我應該加上 - WHERE prudct = a OR產品= b,對嗎? –

+0

哦。我認爲你只是想知道誰在使用2種產品,不管它是哪種產品。 –

+0

哈,好的。真棒!瞭解它......非常感謝!只是爲了我的一般知識 - 是否有另一種獲得理想結果的方法? –

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');