我想計算已禁用的產品數量並有選項。 首先,我嘗試檢查一個表中的oc_product產品是否被禁用,然後我想通過此狀態檢查(如果禁用產品)並在另一個表中檢查產品ID,則此產品ID有選項。mysql依賴於其他
我嘗試這樣做,但只能顯示status = 0產品的結果。
select COUNT(*)
FROM oc_product
WHERE status=0
AND product_id IN (SELECT product_id FROM oc_product_option)
我想計算已禁用的產品數量並有選項。 首先,我嘗試檢查一個表中的oc_product產品是否被禁用,然後我想通過此狀態檢查(如果禁用產品)並在另一個表中檢查產品ID,則此產品ID有選項。mysql依賴於其他
我嘗試這樣做,但只能顯示status = 0產品的結果。
select COUNT(*)
FROM oc_product
WHERE status=0
AND product_id IN (SELECT product_id FROM oc_product_option)
如果我動搖你的問題,你想加入表格。
SELECT COUNT(*) FROM oc_product ocp
INNER JOIN oc_product_option ocpo ON ocpo.product_id = ocp.id
WHERE ocp.status=0
因此,只有那些行會的回報,其中product_id
在選項表(ocpo.product_id = ocp.id
)
如果我理解正確的話,你想要的所有產品的計數狀態爲0,而且所有產品的計數狀態爲0,有選項。
如果是這樣,LEFT OUTER JOIN產品帶有選項。然後,您可以計算產品表中的DISTINCT product_id以獲取產品數量,並且您可以從產品選項表中統計DISTINCT product_id以獲得包含選項的產品數量。 COUNT(column_name)不計算column_name值爲NULL的行,因此不會計算未找到匹配選項的產品。
SELECT COUNT(DISTINCT oc_product.product_id) AS product_count,
COUNT(DISTINCT oc_product_option.product_id) AS product_with_options_count
FROM oc_product
LEFT OUTER JOIN oc_product_option
ON oc_product.product_id = oc_product_option.product_id
WHERE oc_product.status = 0
當然,因爲你加了status = 0對嗎?那麼你的問題是什麼? – vaso123
hm,我需要計算oc_product中的產品設置爲status = 0的位置,然後從結果中檢查oc_product_option中有多少個狀態爲0的產品具有行。 – Marty
你目前的查詢有什麼問題? – sagi