![]() |
Programeren en Informatica
Hey iedereen,
Mijn naam is Gregory en ik ben een student Toegepaste Informatica van de Artesis Hogeschool te Antwerpen. Wij hebben een jaar opdracht waarbij we mensen met computerproblemen dienen te helpen. Dus als je een vraag hebt aarzel dan niet om ze hieronder te posten. Ik denk dan vooral over vragen over programmeren (Java, C#, html, css...) Ik weet dat niet iedereen deze vakken krijgt maar ik weet wel dat er enkele specifieke richtingen deze vakken aanbieden dus ik richt mij vooral naar jullie. Moest je echter met iets anders computer gerelateerd zitten vraag gerust raak! |
Kijk! dat is een leuke:)
mag SQL ook? Daar zijn we namelijk op school nu mee bezig. Ik gebruikte het zelf ook al (icm php). Ik maakte joins eigenlijk met php, en niet met SQL. Ik heb dus een vraagje, hij leek heel simpel, totdat ik hem in acces wilde uitproberen. Het gaat over een rooster database op een school. in 1 tabel staan alle lokalen, en in een andere alle lessen: lokaal (afdeling, lokaalnummer, type, ligging) lesuur (<docentnummer>, uur, <afdeling, lokaalnummer>, <vakcode>) vakcode is bijv. FR1, afdeling is havo of vwo... "Maak een overzicht van alle lokalen die gedurende het eerste uur vrij zijn." Ik dacht gelijk, dat is makkelijk; SELECT lokaalnummer FROM lokaal WHERE lokaalnummer <>(SELECT lokaalnummer FROM lesuur WHERE uur=1;); subquery maakt een rijtje aan met lokalen die wél bezet zijn, daarna kijkt hij of het lokaal niet in dat rijtje staat en dus leeg is. Hij komt hier echter met een fout dat een subquery maar 1 resultaat mag hebben :( Hoe zou ik dat dan aanmoeten pakken? Alvast bedankt! TJ |
Ok TJ ik heb je probleem eens bekeken, php is niet echt mijn lievelingstaal maar na wat zoeken begrijp ik wel de bedoeling is. Euhm in het geval je je code rechtstreeks gekopieerd hebt staat er een afsluit ; teveel in en zou ik dit eens proberen: SELECT 'lokaalnummer' FROM 'lokaal' WHERE 'lokaalnummer' <>(SELECT 'lokaalnummer' FROM 'lesuur' WHERE 'uur="1"');
En anders indien dit nog niet werkt zou ik denken aan een negatie met ! ipv <>... Het zijn maar eerste ideeën want voor de rest zie ik ook het probleem niet... hou je mij op de hoogte of het werkt of niet? Indien het nodig is raadpleeg ik iets meer gespecialiseerde bronnen. SELECT 'lokaalnummer' FROM 'lokaal' WHERE 'lokaalnummer' =(SELECT 'lokaalnummer' FROM 'lesuur' WHERE 'uur=!"1"'); Gregory |
Oké, dus een subquery hoef je niet af te sluiten?
Ik ga het morgen ff proberen. != werkt niet in acces. |
op het einde uiteraard wel ik refereerde naar je "smiley" als je die vervangt door een haakje... Ja laat mij zeker iets weten hoe het verloopt... morgen kan ik mij er dan wel eens over buiegen en ik dacht je databases in mysql moest maken?
|
Nee, voor school moet het in acces.
"Deze subquery kan maximaal één record als resultaat hebben." krijg ik als foutmelding. |
|
Klopt. Een subquery gebruiken als deel van een WHERE clausule kan, maar dan moet het formaat van je resultaat ook wel overeenkomen met je operator.
Aan de structuur van jouw subquery kan je al zien dan er meerdere resultaten terug kunnen komen, en de = is een binaire operator die alleen op constante waarden aan de linker- en de rechtkant kan werken. Links een constante en rechts een verzameling gaat niet werken, vandaar de IN. De IN klapt stiekem uit naar 'where ID = 1 OR ID = 2 ... OR ID = n'. |
Alle tijden zijn GMT +1. Het is nu 15:22. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.