Linuus; jag säger som nosnaj, har du problem med prestanda på en sån fråga du ställer någon enstaka gång så har du troligen major problem med index.
Detta är et typexempel på en fråga som man aldrig spara resultatet av utan att man tar fram den vid behov.
Så här skulle jag kunnat gjort för att lösa uppgiften (Alla kolumner i WHERE satsen ska givetvis vara indexerade på rätt sätt):
Kod:
SELECT
Brand_id,
Brand,
(
select IFNULL(count(*),0)
FROM products
where brand.brand_id = products.brand_id
) AS Antal
FROM Brands
Då visas alla brand du har och antalet förekomster/Tupler oavsett om det är null eller inte.
Det är rent BS att subselectar skulle vara långsamma! Jag har använt 8 subselect i en dynamisk SQL-fråga mot en tabell med joinar från flera andra tabeller med drygt 200 000 personuppgifter (ett 40 tal kolumner med massor av persondata) och den var blixtsnabb.
Jag använde MS-SQL server 6.0 då