subselect

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Grafisch vormgever

Standplaats: Maasland Aantal uren: 32 – 40 uur per week Opleidingsniveau: HBO werk- en denkniveau Ben jij een ambitieuze grafisch vormgever met een passie voor creativiteit en oog voor detail? Vind jij het daarnaast leuk om ook marketingactiviteiten op te pakken? Dan zijn wij op zoek naar jou! Bedrijfsinformatie Westacc Group BV is het zusterbedrijf van HABA en specialiseert zich in (maatwerk) oplossingen voor (elektro) techniek en verlichting in de kampeerbranche. Zij produceren en assembleren onderdelen voor caravans, campers en boten. Voor een groot aantal caravan- en campermerken leveren wij producten als zekeringkasten, invoerdozen, acculaders, schakelmateriaal en verlichting. De producten

Bekijk vacature »

Low code Developer

Dit ga je doen Je richt je op het doorontwikkelen van bestaande applicaties en het geheel van scratch af aan opzetten van nieuwe applicaties binnen een low code platform; Je beoordeelt technisch ontwerpen en maakt de vertaalslag naar de technische oplossingen binnen het platform; Je voert testwerkzaamheden uit; Je adviseert de organisatie op jouw vakgebied; Je schakelt met business analisten en de architect om tot mooie oplossingen te komen; Je lost bugs op en denkt mee over een structurele oplossing. Hier ga je werken Het gaat om een bekend internationaal handelsbedrijf met ruim 800 medewerkers, verdeeld over verschillende deelbedrijven. Deze

Bekijk vacature »

Embedded Developer C++

Functie omschrijving Ben jij op zoek naar een leuke uitdaging als Embedded Developer, zoek dan niet verder! Voor een leuke opdrachtgever in omgeving Rotterdam zijn wij op zoek naar een Embedded Developer die graag met Embedded Devices werkt. Je zult verantwoordelijk worden voor het ontwikkelen en onderhouden van diverse producten. Jouw specialisatie ligt op het vlak van software, hardware en back-end. Dit bedrijf is gespecialiseerd in het ontwerpen van software voor een unieke industrie. Wil jij betrokken worden bij een proces dat loopt van ontwikkeling tot installatie? Waarbij je bezig zult zijn met perfecte systemen die geleverd worden aan binnen

Bekijk vacature »

Senior Front end developer Angular

Functie Er zijn momenteel 5 SCRUM-teams waarvan drie gefocust zijn op DevOps en de huidige projecten en twee op innovatie van de platformen. Jij zal onderdeel worden van het innovatie Scrum team. De 2 multidisciplinaire innovatie teams bestaan momenteel uit 14 werknemers. Jij als senior Front end developer wordt onderdeel van onze innovatieteams. De innovatieteams houden zich bezig met het door ontwikkelen van de huidige producten en denken na over nieuwe functionaliteiten. Binnen de rol van Front end developer krijg je veel vrijheid en kan je je dag zelf indelen. Dingen waar jij je dagelijks mee bezig zult houden is

Bekijk vacature »

Senior Java developer

Als Senior Developer bij Sogeti ben je onderdeel van onze toonaangevende best-gecertificeerde Java community. Deze bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze top-opdrachtgevers. Geen werkdag is hetzelfde! Je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Aval en de Nationale Politie. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We

Bekijk vacature »

SAP Integratie Ontwikkelaar

Ben jij ambitieus in de verdere ontwikkeling van SAP binnen HANOS, en heb je kennis van SAP PI, CPI (SAP integration suite) en of andere middleware tooling? Dan ben jij mogelijk onze nieuwe SAP Integratie (middleware) Ontwikkelaar! Lees snel verder en solliciteer! Wat ga je doen? Als SAP Financieel Consultant ben je, als deel van een gedreven team van interne SAP consultants, de schakel tussen de gebruikersorganisatie en ICT. Je draagt proactief bij aan een optimale aansluiting van de SAP-functionaliteit (een applicatielandschap met o.a. Suite on HANA, Fiori, Hybris, C4C en BO), op de bedrijfsprocessen. Verder ondersteun je de HANOS

Bekijk vacature »

Functioneel applicatiebeheerder - SOP-SYS-SAM

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Functioneel Applicatiebeheerder voor het financiele domein op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Boskoop dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat technische klussen uitvoeren op locatie bij klanten.Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat software en webapplicaties ontwikkelen met behulp van de talen

Bekijk vacature »

Traineeship Fullstack developer (WO, 0 tot 3 jaar

Functie Zoals beschreven ga je vanaf start aan de slag bij een passende opdrachtgever, hierbij kijken ze echt naar jouw wensen, kennis/ervaring maar ook de reisafstand. Momenteel hebben ze meerdere klanten waarbij ze groepen hebben opgezet wat maakt dat er diverse uitdagende kansen liggen. Naast het werken bij de opdrachtgever, en het volgen van de masterclasses, zul je regelmatig met de andere trainees in contact zijn. Niet alleen op professioneel vlak maar juist ook bij de borrels en kwartaaluitjes! Kortom; een jaar lang hard aan jezelf werken in combinatie met gezelligheid en plezier. Spreek dit jou aan? Dan komen we

Bekijk vacature »

Back end developer Digital agency

Functie Heb jij altijd al eens bij een bedrijf willen werken waar jij géén nummertje bent, die alleen maar uitvoerend werk doet? Dan zou je hier perfect passen! Tuurlijk, je werkt aan projecten voor grote of kleine bedrijven… Het enige verschil hier is, jouw mening telt hier écht. Jouw inbreng wordt gewaardeerd, serieus genomen en gebruikt. En vergeet niet, je werkt niet alleen aan deze projecten. Er werken in totaal ruim 20 developers en designers, onderverdeeld over 3 development teams. Voornamelijk bestaande uit Medior en Senior developers, die samen voor een inspirerende en ambitieuze omgeving zorgen. Hun visie is namelijk

Bekijk vacature »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

Bekijk vacature »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Capelle ad Ijssel Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! Een deel van jouw werkzaamheden: Onderhouden en ontwikkelen van de IT systemen; Opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werken aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkelen en implementeren van MS PowerApps en Power BI.

Bekijk vacature »

Mendix Developer

Functie Wat ga je doen als Mendix Developer? We leven in een wereld die snel ontwikkelt en veranderd, ook nemen bedrijfsbelangen toe en blijken risico’s moeilijker in te schatten, daarom wij op zoek naar Junior, Medior en Senior Developers die bedrijven kunnen helpen met hun screeningproces en zorgen dat deze efficiënt en 100 procent AVG compliant is. Het concept achter Mendix is duidelijk. De klant heeft een vraag/probleem. Dit kunnen we door middel van slimme software oplossen. In plaats van te werken met de nieuwste technieken en tools, wordt er gekozen voor het implementeren en maken van software dat op

Bekijk vacature »

PHP Developer (junior functie)

Functie omschrijving Ben jij een starter en wil je werken bij een jong en leuk bedrijf? Lees dan verder! Wij zijn op zoek naar een PHP Developer binnen een junior functie. Binnen dit bedrijf gaat het om persoonlijke aandacht en ontwikkeling! Je komt te werken voor een leuk communicatiebureau die alles op het gebied van online en offline communicatie doet. Dit doen zij voor verschillende branches, waardoor je aan diverse soorten projecten mag werken, dit maakt deze baan erg leuk! Daarbij werk je aan een door hun zelf ontwikkeld framework welke goed leesbaar is. Je maakt voor bedrijven op maat

Bekijk vacature »

.NET Developer

Functie omschrijving In deze functie ga je werken als C# Developer. Jij gaat aan de slag met de volgende taken: Maatwerk software bouwen; Huidige softwareprojecten verder uitbouwen en optimaliseren; Ideeën van de klant omzetten naar handige oplossingen en tools; Bovenstaande doe je middels de Microsoft- stack: C#, ASP.NET en MVC/ Entity Framework. Ben je net afgestudeerd aan een HBO opleiding Informatica, aarzel dan niet om te solliciteren. Dit is namelijk de ideale startersfunctie! Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Het is van oorsprong een familiebedrijf, die gestart zijn met het bouwen van websites. Dit is door

Bekijk vacature »
Tim coppens

tim coppens

20/04/2016 15:04:21
Quote Anchor link
Hallo iedereen,

Kan iemand mij met deze vraag helpen. Ik ben bezig met het leren van sql. De meeste zaken en begrippen begrijp reeds maar subselect lukt niet echt zo vlot. Ik heb onderstaand voorbeeld.

select klantnaam from klant
from klant
where klant_id in
(select klant_id
from uitleen where boek_id in
(select boek_id
from boeken
where jaar= 1993))

Ik begrijp dus dat je de klantnaam oproept van de tabel klant. Ik zie ook dat je een boek_id opvraagt met een jaar uit 1993. En dat je een klant_id zal krijgen uit de tabel uitleen. Maar hoe werkt deze subselect juist. Ik snap de samengang niet zo goed. Wat wordt er juist opgeroepen? Het is om alles beter te begrijpen om zelf subselects toe te passen.

Vanaf hier weet ik het niet meer.
(select klant_id
from uitleen where boek_id in
(select boek_id
from boeken
where jaar= 1993))

Hopelijk kan en wil er iemand mij helpen hiermee?

Alvast bedankt!

Tim
 
PHP hulp

PHP hulp

16/11/2024 02:18:47
 
Ivo P

Ivo P

20/04/2016 15:19:30
Quote Anchor link
je zou dit van binnenuit moeten bekijekn.

Eerst
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
select boek_id
from boeken
where jaar= 1993


Dat levert je een lijst met de id's van alle boeken uit 1993. (laten we zeggen dat dat er 3000 zijn).

Dan de query ervoor:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
select klant_id
from uitleen
where boek_id in (.....)


op de plek van die .... komen dan die 3000 boeken te staan.
Je verkijgt hieruit dus de lijst met alle leners van die boeken.

Tenslotte gaan die id's van de leners dan in de hoofdquery.

Maar
Dat kost je database nogalwat moeite. Die lijsten zijn best groot.

Vaak kun je dat beter met een join doen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT boek,  naamlener
FROM klant
JOIN uitleen WHERE uitleen.klant_id = klant.klant_id
JOIN boeken WHERE boeken.boek_id = uitleen.boek_id
 
Thomas van den Heuvel

Thomas van den Heuvel

20/04/2016 15:43:00
Quote Anchor link
En dan nog een WHERE-conditie ;).

Queries zijn meestal ook vertalingen van informatie (vraagstukken) waar iemand in geinteresseerd is. Deze kun je verwoorden in natuurlijke taal.

Zo bevat je oorspronkelijke query de volgende informatiewens: "Geef mij de namen van klanten die een of meer boeken in bruikleen hebben die in 1993 zijn gepubliceerd".

De query knoopt de eindjes aan elkaar: van klantinformatie naar boekenuitleeninformatie naar boeken.
 

20/04/2016 16:45:55
Quote Anchor link
Je gebruikt een subselectie om de resultaatset van een query (de subquery) dat in essentie ook een tabel is, te gebruiken als invoer van een andere query. Dit heet ook wel 'nesten' van queries.
Je kunt de haakjes in de SQL code vergelijken met de haakjes van een functie-aanroep in PHP. De eerste, 'binnenste' query is degene met de meeste haakjes. Die wordt als eerste uitgevoerd, waarna de resultaatset wordt doorgegeven als input aan de 'bovenliggende' query, waarna diens resultaatset wordt doorgegeven als input voor de 'bovenste' query zonder de haakjes.

Overigens wordt een query als in het voorbeeld vaker geschreven met JOINs:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT klant.klantnaam FROM klant
INNER JOIN uitleen ON (uitleen.klant_id = klant.klant_id)
INNER JOIN boeken ON (boeken.boek_id = uitleen.boek_id)
WHERE boeken.jaar = 1993


Ik had eerder begrepen dat je voorzichtig moet zijn met subqueries in MySQL omdat de SQL optimizer vaak niet goed in staat is om onhandig geschreven queries te optimaliseren, waardoor ook allerlei indexes niet gebruikt zouden worden. Je zou dat per query kunnen bekijken met het EXPLAIN statement.
Gewijzigd op 20/04/2016 16:54:34 door
 
Tim coppens

tim coppens

21/04/2016 10:04:24
Quote Anchor link
En wat is de relatie of link tussen de eerste querry met de querry's tussen de ()? Wordt deze vervangen door de laatste querrys of komen die samen in 1 resultaat?
 
Ivo P

Ivo P

21/04/2016 10:25:58
Quote Anchor link
je krijgt alleen het resultaat uit je eerste SELECT.

In jouw geval krijg je dus alleen een lijst van klantnamen.

Vergelijk het met iets als

$x = kwadraat( 10 );

Dat levert je 100 op.

Ook krijg je 100 als je doet

$x = kwadraat( 2*5 )

als we ook de functie "verdubbel" kennen dan levert verdubbel( 5 ) je 10 op.

Dus

$x = kwadraat( verdubbel( 5 ) )

is wederom 100. Je ziet dus niet de 5 noch de 10 terug.

Net zo met je query.
De subquery's dienen, in jouw geval, voor het filteren van je resultaten. je haalt een lijst met boeken op, en wilt alleen de uitleen-acties met betrekking tot die boeken weken.
resultaat is due een lijst met uitleen-acties.

Je gebruikt dit tussen-resultaat wederom om je lijst met klanten te beperken.
Je wilt alleen de klanten hebben die voorkomen in de lijst met uitleen-acties.

Je kúnt wel iets doen met het ophalen van resultaten uit een subquery, maar dan gebruik je dat op een andere manier. Dan staat de subquery in het FROM (of join) deel van de query.

Maar evengoed:
ik denk dat een join-query meer is wat je nodig hebt.
Zeker als het om grotere aantallen gaat, zal je database waarschijnlijk je "IN (heeeele grote lijst)" niet lollig vinden.
 
Tim coppens

tim coppens

26/04/2016 12:45:59
Quote Anchor link
Hoe is de opzet voor een join? Want ik vind een subselect niet echt leesbaar. En verwarrend.
 
Jan de Laet

Jan de Laet

26/04/2016 13:49:18
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT klant.klantnaam
FROM boeken
JOIN uitleen ON uitleen.boek_id = boeken.boek_id
JOIN klant ON klant.klant_id = uitleen.klant_id
WHERE boeken.jaar = 1993


Je begin met selecteren van "boeken" uit jaar 1993. (regel 2 en 5)
Met regel 3 zoek je uit tabel uitleen alle uitleen van die boeken
Met regel 4 zoek je uit tabel klanten alle klanten van die uitleen
Op regel 1 toon je alleen de klantnaam
Gewijzigd op 26/04/2016 13:49:42 door Jan de Laet
 
Tim coppens

tim coppens

26/04/2016 18:48:37
Quote Anchor link
Ok. bedankt voor de informatie. Dit is duidelijk. Ook bedankt aan de rest
 

27/04/2016 14:55:48
Quote Anchor link
Het enige verschil tussen Jans query en de mijne is dat de zijne meer rijen laat zien, ook als er geen informatie gevonden kan worden in de tabellen 'uitleen' en 'klant', omdat er via een LEFT JOIN gejoined wordt vanuit de tabel 'boeken'. In mijn query zitten INNER JOINs die alleen rijen tonen die in alle tabellen aanwezig zijn, zoals de query in je oorspronkelijke vraag.
 
Jan de Laet

Jan de Laet

27/04/2016 15:16:47
Quote Anchor link
@An tje, sorry ik had jouw eerdere antwoord over het hoofd gezien. Anders had ik er wel naar verwezen.

Wel een verschil in onze aanpak is dat jij van klant naar uitleen naar boek werkt. Ik doe dat precies andersom. Ik had daar een reden voor, namelijk omdat de enige WHERE op boeken sloeg.
Ik weet niet zeker of dit in performance een beter resultaat geeft, maar ik verwacht van wel.

Overigens is JOIN (die ik gebruik) naar mijn beste weten in MySQL hetzelfde als een INNER JOIN, dus het aantal rijen zal hetzelfde zijn.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.