compacte database en uitgebreide query
Renzo Massaro
14/07/2010 09:52:33Hallo,
In drupal is een module webform en daar word in een tabel de submitted_data opgeslagen. Nu staan er maar een paar velden in en is het dan ook niet gemaakt om gegevens makkelijk uit te halen, maar ik heb nu de volgende vraag:
Ik heb hier een select query die uit de row cid[13] een emailadres haalt. Nu wil ik alleen het mailadres uit de database halen waar cid[177] is ontwerp en niet cid[177 is anders, hoe kan ik dit nu in deze query verwerken? Is dat mogelijk dmv een soort subquery ofzo???
De cid heeft dus verschillende nummers waar dan bij elke cid een dataveld achter staat met de ingevoerede gegevens, zie database indeling hieronder
<Database>
nid sid cid no data
30 362 13 0 [email protected]
30 362 177 0 ontwerp
In drupal is een module webform en daar word in een tabel de submitted_data opgeslagen. Nu staan er maar een paar velden in en is het dan ook niet gemaakt om gegevens makkelijk uit te halen, maar ik heb nu de volgende vraag:
Ik heb hier een select query die uit de row cid[13] een emailadres haalt. Nu wil ik alleen het mailadres uit de database halen waar cid[177] is ontwerp en niet cid[177 is anders, hoe kan ik dit nu in deze query verwerken? Is dat mogelijk dmv een soort subquery ofzo???
De cid heeft dus verschillende nummers waar dan bij elke cid een dataveld achter staat met de ingevoerede gegevens, zie database indeling hieronder
<Database>
nid sid cid no data
30 362 13 0 [email protected]
30 362 177 0 ontwerp
Gewijzigd op 14/07/2010 09:54:26 door Renzo Massaro
PHP hulp
22/12/2024 22:49:35John D
14/07/2010 10:30:22eigenlijk is hier sprake van onjuiste modellering. Dit wordt nogal vaak gedaan om het ontwerp flexibel te houden maar leidt veelal tot excessief i/o.
Je kan het oplossen door de tabel met zich zelf te joinen.
Je kan het oplossen door de tabel met zich zelf te joinen.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
select a.data
from webform_submitted_data a, webform_submitted_data b
where a.nid=b.nid
and a.sid=b.sid
and a.nid=30
and a.sid=362
and b.cid='ontwerp'
?>
select a.data
from webform_submitted_data a, webform_submitted_data b
where a.nid=b.nid
and a.sid=b.sid
and a.nid=30
and a.sid=362
and b.cid='ontwerp'
?>
Gewijzigd op 14/07/2010 10:31:33 door John D
P Lekensteyn
14/07/2010 10:34:29John D
14/07/2010 10:37:13@Peter: Yep, je zit volledig naast. Ik ben Oracle DBA en heb een gezonde afkeer van alles wat van Bill afkomstig is :) Ben wel oldskool DBA en niet zo thuis in het fancy LEFT en RIGHT join gedoe...
Gewijzigd op 14/07/2010 10:39:38 door John D