phpbar.de logo

Mailinglisten-Archive

knifflige abfrage mit GROUP

knifflige abfrage mit GROUP

Sebastian Mendel lists at sebastianmendel.de
Die Jun 29 12:04:11 CEST 2004


Henning Jödden schrieb:

> Tach zusammen,
> 
> Eigentlich hört es sich garnicht so schwer an. Doch ich komme irgendwie 
> auf keinen grünen Zweig.
> 
> gegeben sei eine Tabelle mit zwei Keys c_id und ev_id. Beide können 
> doppelt vorkommen jedoch kann niemals eine komplette Reihe identisch 
> sein (also c_id *und* ev_id gleich).
> Ich möchte nun wissen wieviele c_id's, die z.B. ev_id=1 haben auch mit 
> ev_id=2 eingetragen sind.
> 
> Ein einfaches Beispiel:
> 
> +-------+-------+
> | c_id  | ev_id |
> +-------+-------+
> | 10    | 1     |
> +-------+-------+
> | 15    | 1     |
> +-------+-------+
> | 10    | 2     |
> +-------+-------+
> | 20    | 2     |
> +-------+-------+
> 
> Wenn die Tabelle so aussähe und ich die Anzahl der c_id's suche, die 
> ausser in ev_id=1 noch in ev_id=2 eingetragen sind bräuchte ich als 
> Ergebnis folgendes:
> 
> +-------+-------+
> | ev_id | count |
> +-------+-------+
> | 2     | 1     |
> +-------+-------+
> 
> Ist dies in einer Abfrage möglich?

Ja, mit COUNT(), WHERE, GROUP BY und HAVING

SELECT c_id, COUNT(c_id) AS `anzahl`
FROM `table`
WHERE ev_id IN (1,2)
GROUP BY c_id
HAVING `anzahl` > 1

c_id anzahl
  10   2


oder so ähnlich, habs nicht probiert

-- 
Sebastian Mendel

www.sebastianmendel.de www.warzonez.de www.tekkno4u.de www.nofetish.com
www.sf.net/projects/phpdatetime        www.sf.net/projects/phptimesheet

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive