Hallo ik ben met een lastige query bezig en kom er niet meer uit.
De tabellen zien er ongeveer zo uit:
Tabel 1 naam: een
een_id getal1 getal2 getal3 getal4 getal5 getal6
-------------------------------------------------------
44 21 22 23 47 84 98
45 22 45 47 42
46 11 41 21 45
47 22
48 84 45 21
Tabel 2 naam: twee
twee_id Naam Bedrijf tel een_id
---------------------------------------------------
1 Henks Mooi 0124 21
2 frits groot 7178 48
3 Roel Klein 7431 47
4 Gekkie stom 7442 22
Okee uitleg:
Ik wil graag wanneer je een bedrijf zoekt moet 'een_id' : 48 dat je dan ook de bedrijven vindt met de id's die horen bij een_id 48.
In dit geval wanneer ik zou zoeken op 48 zou ik de bedrijven 'frits' & 'Henks'moeten vinden.
De query die ik nu gebruik (werkt wel maar verkeerde uitslag) is dit:
<?php
SELECT * FROM een, twee WHERE (een.een_id = 48 AND twee.twee_id = 48 OR twee.een_id =
een.getal1 OR twee.een_id = een.getal2 OR twee.een_id = een.getal3 OR
twee.een_id = een.getal4 OR twee.een_id = een.getal5 OR twee.een_id = een.getal6 )
?>
Met deze query krijg ik heel veel bedrijven, ook zitten hier veel dubbelen bij. Het word een zoek query om bedrijven te vinden. Nu heeft elk bedrijf een 'een_id'
Maar ik wil hebben dat het bedrijf ook op een aantal andere een_id's word gevonden.
Daarom heb ik een extra tabel gemaakt waar ik bepaalde een_id's aan elkaar koppel. Ik moet in de
query er nu voor zorgen dat wanneer op 48 word gezocht ook de bedrijven vindt die 84, 45 of 21 als een_id hebben.
Ik heb overal al lopen zoeken maar zit echt vast nu. Ik had dit al eerder gepost, toen is er niks uitgekomen omdat men dacht dat de database niet goed was genormaliseerd. De database kan niet anders en is correct genormaliseerd. Ik wou graag weten hoe ik een dergelijke query kan maken.
Mvg,
Roel
1.721 views