Ik ben met een programma bezig (geschreven in C#, gebruik maken van Npgsql (http://gborg.postgresql.org/project/npgsql/projdisplay.php)). Voor dit programma maak ik gebruik van een PostgreSQL database. Deze database heeft (naast andere tabellen) drie tabellen genaamd cd, location en locationdetails. Deze zien er als volgt uit:
cd: title [pk], creationdate, type, fk_storedloc [fk], fk_currentloc [fk]
location: location [pk], capacity, homelocation
locationdetails: fk_cd [pk,fk], fk_location [pk,fk], part, column, row
Het mag duidelijk zijn dat cd.fk_storedloc en cd.fk_currentloc foreign keys zijn, en dat die wijzen naar location.location. Tevens wijzen locationdetails.fk_cd en locationdetails.fk_location naar respectievelijk cd.title en location.location. Tot dusver geen problemen lijkt me.
Nu wil ik echter de volgende query uitvoeren:
Volgens mij zou dat maar 1 rij moeten geven, maar hij geeft er vier
. Ik heb de resultaten ffies in een tekstfile'tje op m'n webserver gezet. Die is hier te vinden:
http://members.home.nl/mezach/query_result.txt .
Het lijkt er dus op dat hij alle mogelijke combinaties met de column en row velden neemt. Maar dat is natuurlijk niet de bedoeling. Hij moet gewoon 1 resultaat geven. Iemand een idee hoe dat zit?
cd: title [pk], creationdate, type, fk_storedloc [fk], fk_currentloc [fk]
location: location [pk], capacity, homelocation
locationdetails: fk_cd [pk,fk], fk_location [pk,fk], part, column, row
Het mag duidelijk zijn dat cd.fk_storedloc en cd.fk_currentloc foreign keys zijn, en dat die wijzen naar location.location. Tevens wijzen locationdetails.fk_cd en locationdetails.fk_location naar respectievelijk cd.title en location.location. Tot dusver geen problemen lijkt me.
Nu wil ik echter de volgende query uitvoeren:
SQL:
1
2
3
4
5
| SELECT c.*, d1.part AS part1, d1."column" AS column1, d1.row AS row1, d2.part AS part2, d2."column" AS column2, d2.row AS row2 FROM cd c, locationdetails d1, locationdetails d2 WHERE c.title = 'TestCD' AND c.fk_storedloc = d1.fk_location AND c.fk_currentloc = d2.fk_location |
Volgens mij zou dat maar 1 rij moeten geven, maar hij geeft er vier
http://members.home.nl/mezach/query_result.txt .
Het lijkt er dus op dat hij alle mogelijke combinaties met de column en row velden neemt. Maar dat is natuurlijk niet de bedoeling. Hij moet gewoon 1 resultaat geven. Iemand een idee hoe dat zit?