Visa ett inlägg
Oläst 2011-01-11, 20:06 #7
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
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å

Senast redigerad av Conny Westh den 2011-01-11 klockan 20:14
Conny Westh är inte uppkopplad   Svara med citatSvara med citat