|
| [mySQL] Select Fra : Thor Dreier |
Dato : 10-10-01 22:57 |
|
Hej
Jeg har følgende tabeller:
CREATE TABLE varegruppe (
gruppeid INTEGER NOT NULL AUTO_INCREMENT,
gruppenavn VARCHAR(30),
PRIMARY KEY (gruppeid)
);
CREATE TABLE vare (
vareid INTEGER NOT NULL AUTO_INCREMENT,
gruppeid INTEGER NOT NULL,
varenavn VARCHAR(30),
pris REAL,
beskrivelse TEXT,
PRIMARY KEY (vareid)
);
Hvis jeg udfører følgende kommando, så kommer der kun de varegrupper frem
der indeholder varer. Er det muligt at lave en forespørgsel der også henter
de varegrupper ud der ikke indeholder varer, så "antal" bliver 0.
SELECT g.gruppeid AS gruppeid, gruppenavn, COUNT(vareid) AS antal
FROM vare AS v, varegruppe AS g
WHERE g.gruppeid=v.gruppeid
GROUP BY g.gruppeid
ORDER BY gruppenavn
Thor
| |
Thor Dreier (11-10-2001)
| Kommentar Fra : Thor Dreier |
Dato : 11-10-01 00:59 |
|
"Thor Dreier" <news@cheater.dk> wrote in message
news:2u3x7.6354$uQ.660665@news010.worldonline.dk...
> Hvis jeg udfører følgende kommando, så kommer der kun de varegrupper frem
> der indeholder varer. Er det muligt at lave en forespørgsel der også
henter
> de varegrupper ud der ikke indeholder varer, så "antal" bliver 0.
Fandt selv ud af det ved at kigge på
http://www.mysql.com/doc/M/i/Missing_Sub-selects.html
Løsningen blev:
SELECT g.gruppeid AS gruppeid, gruppenavn, COUNT(v.gruppeid) AS antal
FROM varegruppe AS g
LEFT JOIN vare AS v ON g.gruppeid=v.gruppeid
GROUP BY g.gruppeid
| |
Thor Dreier (11-10-2001)
| Kommentar Fra : Thor Dreier |
Dato : 11-10-01 01:24 |
|
"Thor Dreier" <news@cheater.dk> wrote in message
news:Og5x7.7988$%D3.643124@news000.worldonline.dk...
> SELECT g.gruppeid AS gruppeid, gruppenavn, COUNT(v.gruppeid) AS antal
> FROM varegruppe AS g
> LEFT JOIN vare AS v ON g.gruppeid=v.gruppeid
> GROUP BY g.gruppeid
Den manglede lige en
ORDER BY gruppenavn
| |
|
|