darkmouse
Gebruiker
- Lid geworden
- 12 apr 2009
- Berichten
- 15
Ik heb een tabel met Opties:
OptID - OptNaam - Parent
1 - EDR - 2
2 - EDL - 2
3 - DDR - 2
4 - DDL - 2
5 - ETR - 2
6 - ETL - 2
enzovoorts...
daarnaast een tabel OptieEigenschappen
OptID - EigenschapID - Eigenschap
1 - 1 - deur
1 - 8 - enkel
1 - 11 - rechts
1 - 13 - duwend
2 - 1 - deur
2 - 8 - enkel
2 - 10 - links
2 - 13 - duwend
enzovoort....
Nu wil ik met een query die deur naar boven halen die aan alle voorwaarden voldoet.
Bijvoorbeeld Haal de opties voor parent_id 2 met eigenschappen 1,8,10,13.
Dit is een probleem.
Het joinen van de tabellen gaat prima, de parent is ook geen probleem, maar hoe krijg ik de optie die aan alle eigenschappen voldoet?
Als je stelt: WHERE Eigenschap_id IN (1,8,10,13) krijg je alle opties waar 1 van die eigenschappen in voorkomt. Dus teveel.
Als je stelt: WHERE Eigenschap_id = 1 AND Eigenschap_id = 8, krijg je niets, want geen enkel record in de tabel Eigenschappen heeft meerdere Eigenschap_id's.....
Ik wordt er een beetje wanhopig van :-(
OptID - OptNaam - Parent
1 - EDR - 2
2 - EDL - 2
3 - DDR - 2
4 - DDL - 2
5 - ETR - 2
6 - ETL - 2
enzovoorts...
daarnaast een tabel OptieEigenschappen
OptID - EigenschapID - Eigenschap
1 - 1 - deur
1 - 8 - enkel
1 - 11 - rechts
1 - 13 - duwend
2 - 1 - deur
2 - 8 - enkel
2 - 10 - links
2 - 13 - duwend
enzovoort....
Nu wil ik met een query die deur naar boven halen die aan alle voorwaarden voldoet.
Bijvoorbeeld Haal de opties voor parent_id 2 met eigenschappen 1,8,10,13.
Dit is een probleem.
Het joinen van de tabellen gaat prima, de parent is ook geen probleem, maar hoe krijg ik de optie die aan alle eigenschappen voldoet?
Als je stelt: WHERE Eigenschap_id IN (1,8,10,13) krijg je alle opties waar 1 van die eigenschappen in voorkomt. Dus teveel.
Als je stelt: WHERE Eigenschap_id = 1 AND Eigenschap_id = 8, krijg je niets, want geen enkel record in de tabel Eigenschappen heeft meerdere Eigenschap_id's.....
Ik wordt er een beetje wanhopig van :-(
Code:
$haalOptions = "SELECT conf_SysOptions.Opt_ID, Parent_ID, Opt_Value, conf_SysOpt_HasAtt.SysOpt_Attributes_Att_ID
FROM conf_SysOptions
INNER JOIN conf_SysOpt_HasAtt
ON conf_SysOptions.Opt_ID = conf_SysOpt_HasAtt.SysOptions_Opt_ID
WHERE Parent_ID = ".$ParentsTab['Par_ID']."
AND conf_SysOpt_HasAtt.SysOpt_Attributes_Att_ID IN (".$cc_list.")