案例: 我想已經COMPANY_ID 8和13,但所有的公司,只有當他們都product_ids(1,2,4,8)。選擇行,其中樞軸具有所有的ID
問題: company_id 13沒有product_id 4和8,但仍顯示在查詢結果中,如下所示。似乎cp.product_id IN(1,2,4,8)返回公司,如果它有這些值之一,但我需要他們在透視表company_products中具有所有這些值。
SELECT
c.id as company_id,
cp.product_id
FROM
`companies` as c
LEFT JOIN `company_products` cp ON cp.company_id = c.id
WHERE
c.id IN (8, 13)
AND cp.product_id IN (1,2,4,8)
GROUP BY
c.id
我的猜測是我應該使用IN以外的東西,但是我的研究並沒有讓我找到正確的解決方案。感謝您的幫助。
當您說「_all所有擁有company_id 8和13_的公司」時,假設您確實是指「_company_id 8 OR 13_」是否正確?布爾值和/或在這裏是重要的,'IN()'用作'OR'。我明白你的問題的部分內容,但其他WHERE條件需要澄清。如果您將輸入行樣本與該輸入樣本中的輸出行一起提供,那麼這將有所幫助,因此我們無需進行任何推理。 –
在我的代碼中,我已經確定我想company_id 8和13.我想過濾這兩家公司的條件是具有所有給定的product_id –