Domanda

Ho la seguente query:

SELECT products_categories.categoryID, name, COUNT(*) AS itemCount
FROM products_categories
LEFT JOIN products_to_categories ON products_to_categories.categoryID = products_categories.categoryID
GROUP BY products_categories.categoryID

Ma ancora c'è un problema: le categorie senza prodotti in essi restituiscono itemCount = 1 invece di 0. Come posso risolvere questo problema?

È stato utile?

Soluzione

Hai provato COUNT(products_to_categories.categoryID) AS itemCount? Io non sono davvero sicuro, ma vorrei pensare che forse le bugie problema nel COUNT(*).

Altri suggerimenti

Prova COUNT(product_name) o qualsiasi altra cosa, invece di COUNT(*).

COUNT(products_to_categories.categoryID)

La richiesta di COUNT(*) dà almeno 1 perché, dopo tutto, non vi è 1 fila. i conteggi specifici necessitano di un trattamento specifico.

SELECT products_categories.categoryID, name, COUNT(*) AS itemCount
FROM products_categories
LEFT JOIN products_to_categories ON products_to_categories.categoryID = products_categories.categoryID
GROUP BY products_categories.categoryID
WHERE itemCount <> '0'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top