begrüße!
ich habe 3 tabellen..
aus diesen 3 tabellen möchte ich folgendes auslesen: name des parks, park_id, anzahl der coaster in dem park, anzahl der bilder zum park..
habe dafür folgenden query geschrieben:
zum einen bekomme ich bei diesem query für die anzahl der bilder und die anzahl der parks jeweils das produkt aus der anzahl der tatsächlichen coaster mit der tatsächlichen anzahl der bilder zum park (also 4 coaster, 2 bilder => 8 ) irgendwie komm ich nich so ganz drauf, wo sich mein denkfehler versteckt..
das 2. problem ist hierbei, dass in der gleichen tabelle für mehrere verschiedenen "kategorien" bilder gespeichert werden sollen, die über 'type' klassifiziert werden.. es wird ziemlich sicher vorkommen, dass es in der tabelle cn_images mehrere male die gleiche ref_id gibt, wobei über type zu einem anderen oberelement referenziert wird.. ich habe versucht, den query um "WHERE i.type = 'p' OR i.type = NULL" zu erweitern.. hierbei bekomme ich allerdings immer nur die parks ausgelesen, zu denen bereits bilder in der datenbank eingetragen sind..
ich überlege auch grade, ob ich das feld 'ref_id' aufsplitten soll in die verschiedenen kategorien.. also zb park_id, coaster_id, etc..und falls ein foto dann zu einem park gehört, dann bleibt bis auf das feld "park_id" der rest eben leer.. hätte auch den vorteil, dass man fotos zu mehreren kategorien referenzieren könnte..
wäre sehr dankbar für hinweise auf meine denkfehler!
mfg
whizzler
ich habe 3 tabellen..
Code:
cn_parks:
park_id | name
cn_coasters:
coaster_id | name | park_id
cn_images:
image_id | type | ref_id
aus diesen 3 tabellen möchte ich folgendes auslesen: name des parks, park_id, anzahl der coaster in dem park, anzahl der bilder zum park..
habe dafür folgenden query geschrieben:
Code:
SELECT p.park_id, p.name, COUNT( c.coaster_id ) AS num_coasters,
COUNT( i.image_id ) AS num_images
FROM cn_parks p
LEFT JOIN cn_coasters c ON c.park_id = p.park_id
LEFT JOIN cn_images i ON i.ref_id = p.park_id
GROUP BY p.id
ORDER BY p.name
zum einen bekomme ich bei diesem query für die anzahl der bilder und die anzahl der parks jeweils das produkt aus der anzahl der tatsächlichen coaster mit der tatsächlichen anzahl der bilder zum park (also 4 coaster, 2 bilder => 8 ) irgendwie komm ich nich so ganz drauf, wo sich mein denkfehler versteckt..
das 2. problem ist hierbei, dass in der gleichen tabelle für mehrere verschiedenen "kategorien" bilder gespeichert werden sollen, die über 'type' klassifiziert werden.. es wird ziemlich sicher vorkommen, dass es in der tabelle cn_images mehrere male die gleiche ref_id gibt, wobei über type zu einem anderen oberelement referenziert wird.. ich habe versucht, den query um "WHERE i.type = 'p' OR i.type = NULL" zu erweitern.. hierbei bekomme ich allerdings immer nur die parks ausgelesen, zu denen bereits bilder in der datenbank eingetragen sind..
ich überlege auch grade, ob ich das feld 'ref_id' aufsplitten soll in die verschiedenen kategorien.. also zb park_id, coaster_id, etc..und falls ein foto dann zu einem park gehört, dann bleibt bis auf das feld "park_id" der rest eben leer.. hätte auch den vorteil, dass man fotos zu mehreren kategorien referenzieren könnte..
wäre sehr dankbar für hinweise auf meine denkfehler!
mfg
whizzler