Momenteel ben ik bezig met ontwikkelen van applicatie dat werkt met projecten. Onder een project kunnen meerdere locaties voor komen. Een locatie kan ook onder meerdere projecten bekend zijn. Op het moment van invoer wordt er gecontroleerd (aan de hand van de locatie naam) of deze locatie al is ingevoerd in een project. Is de locatie bekend in een ander project dan het huidige project, dan kan hij bekend worden gemaakt in het huidige project (d.m.v. het toevoegen van een record in de tabel link_project_location). Dit mag niet een tweede keer gebeuren...
Ik heb onderstaande tabellen met data:
project
link_project_location
location
Nu loop ik tegen het volgende probleem aan; de onderstaande query wordt uitgevoerd:
resultaat
Van het bovenstaande result worden ook de locaties met id 1, 2 en 3 meegenomen met pr_id 2. Maar deze record moeten eruit gefilterd worden, omdat deze al voor komen in project 1. Daarintegen locatie met id 7 komt nog niet in project 1 voor en mag wel meegenomen worden. Is hier een eenvoudige en universele manier voor? Want de applicatie kan meerder projecten bevatten dan alleen 1 en 2.
Ik hoop dat het verhaal en probleem duidelijk is.
Mocht dit niet het geval zijn dan hoor ik het graag...
Ik heb onderstaande tabellen met data:
project
| id | name |
| 1 | project 1 |
| 2 | project 2 |
link_project_location
| pr_id | lc_id |
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 1 | 5 |
| 1 | 6 |
| 2 | 1 |
| 2 | 2 |
| 2 | 3 |
| 2 | 7 |
location
| id | name |
| 1 | Houten |
| 2 | Houten |
| 3 | Houten |
| 4 | Houten |
| 5 | Houten |
| 6 | Houten |
| 7 | Houten |
Nu loop ik tegen het volgende probleem aan; de onderstaande query wordt uitgevoerd:
SQL:
1
2
3
| SELECT location.id, location.name, link_project_location.project_id FROM location LEFT JOIN link_project_location on location.id = link_project_location.lc_id WHERE (location.name LIKE '%Hout%' |
resultaat
| id | pr_id | name |
| 1 | 1 | Houten |
| 2 | 1 | Houten |
| 3 | 1 | Houten |
| 4 | 1 | Houten |
| 5 | 1 | Houten |
| 6 | 1 | Houten |
| 7 | 2 | Houten |
| 1 | 2 | Houten |
| 2 | 2 | Houten |
| 3 | 2 | Houten |
Van het bovenstaande result worden ook de locaties met id 1, 2 en 3 meegenomen met pr_id 2. Maar deze record moeten eruit gefilterd worden, omdat deze al voor komen in project 1. Daarintegen locatie met id 7 komt nog niet in project 1 voor en mag wel meegenomen worden. Is hier een eenvoudige en universele manier voor? Want de applicatie kan meerder projecten bevatten dan alleen 1 en 2.
Ik hoop dat het verhaal en probleem duidelijk is.
Mocht dit niet het geval zijn dan hoor ik het graag...
[ Voor 3% gewijzigd door Verwijderd op 27-05-2008 14:04 ]