MySQL Joins

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dynamics Ontwikkelaar

Dit ga je doen Ontwikkelen van Dynamics 365 voor de interne uitrol; Samen met de consultants sparren met klanten over de wensen en eisen; Ontwikkelen van Dynamics 365 voor verschillende grote klanten; Technische analyse en testen; Meedenken over het gebruik en de richting van Dynamics binnen de organisatie. Hier ga je werken Onze opdrachtgever, gevestigd in regio Eindhoven, levert een compleet dienstenpakket op het gebied van IT. Zij pakken verschillende (complexe) vraagstukken van grote organisaties op. De sfeer intern is gezellig en informeel. Men houdt van hard werken maar gezelligheid door middel van een borrel of gezamenlijke lunch komt er

Bekijk vacature »

C# Developer Research and Development - Delft

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Delft Vacature ID: 6307 Introductie C# Developer Research and Development - Delft - Onze klant is één van de meest innovatieve bedrijven in de region van Delft. Op dit moment zijn ze voor het innovatie centrum. In het innovatie centrum wordt gewerkt aan de nieuwste technieken voor navigatie software. R&D / C# / Pattern Recognition / Algorithms / 3d Data / DotNET Functieomschrijving Als C# Developer kom je te werken in een innovatief scrumteam. We ontwikkelen en door ontwikkelen de nieuwste technieken op het gebied van navigatie software. Deze software wordt onder andere

Bekijk vacature »

Ontwikkelaar Identity & Access Management

Dit ga je doen Als Identity & Access Management Ontwikkelaar zorg jij er voor dat studenten, medewerkers en docenten de juiste benodigdheden op het juiste moment kunnen gebruiken; Het juist opslaan van onderzoeksdata en het openbaar beschikbaar stellen van publicaties (Open Access); Studenten, collega's en wetenschappers ondersteunen; Agile en Scrum werken; Technisch Applicatiebeheer; Ontwikkelen in One Identity Manager en VB.NET. Hier ga je werken Als Ontwikkelaar kom je terecht in een hecht team die zich richt op wetenschappelijke informatie en ICT. Jij bent degene die er voor zorgt dat alle informatie, uit diverse onderzoeken, bij de juiste personen terecht komt.

Bekijk vacature »

Software Ontwikkelaar C# .NET

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Amersfoort gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Bedrijfsprofiel De organisatie waar je voor gaat werken heeft een onafhankelijk dataplatform ontwikkelt voor de agrarische sector.

Bekijk vacature »

Java Developer

Dit ga je doen Het ontwikkelen van nieuwe software; Het ombouwen van de bestaande software; Zowel back- als front-end software ontwikkelen; Het testen; Het implementeren van de volledig geteste software; Het verzorgen van nazorg en het oplossen van bugs; Het opstellen en bijhouden van procesdocumentatie; Je draagt bij aan het agile/scrum processen van het team. Hier ga je werken Ongetwijfeld heb je een of meerdere producten van deze organisatie in huis. Het proces erachter, daar ben je ongetwijfeld minder bekend mee. Deze opdracht geeft je de kans meer over dit proces te weten te komen en een mooie bijdrage te

Bekijk vacature »

Implementatie specialist

Standplaats: Honselersdijk Aantal uren: 32 – 40 uur Opleidingsniveau: HBO werk- en denkniveau Ben jij de implementatie expert die onze klanten helpt bij het integreren van de Greencommerce software? Ben jij daarnaast communicatief sterk, denk jij graag in verbeteringen en heb je ervaring met ICT? Lees dan snel verder! Bedrijfsinformatie Jem-id is een grote speler op het gebied van software ontwikkeling. Zo zijn wij continu bezig met het ontwikkelen van de meest innovatieve software voor de AGF- en sierteeltsector. We creëren oplossingen die er toe doen en verbinden klanten niet alleen op technisch vlak, maar zoeken ook de verbinding in

Bekijk vacature »

Fullstack JavaScript Developer Webapplicaties

Bedrijfsomschrijving Voor deze organisatie ben ik op zoek naar een getalenteerde Fullstack JavaScript Developer. Ze is een snelgroeiend software development agency dat zich richt op het ontwikkelen van moderne webapplicaties en complexe systemen voor haar klanten. Ze is gevestigd onder de rook van Utrecht en heeft als doel om tot de top van de Nederlandse agencies te behoren. Deze organisatie maakt softwareoplossingen voor verschillende soorten bedrijven. Innovatie staat hoog in het vaandel en je zult dus met nieuwe technieken aan de slag gaan. Ze hebben klanten in vele branches zitten, zoals retail, finance, gezondheid en onderwijs. De diverse klanten zorgen

Bekijk vacature »

Mendix Consultant / Developer

Dit ga je doen Het in kaart brengen en analyseren van de functionele wensen van de klant rondom Mendix applicaties; Het fungeren als sparringpartner voor de (interne) klanten; Het opstellen van requirements en het vertalen hiervan naar technische mogelijkheden; Het opstellen van user stories; Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Het testen van op te leveren software en het zorg dragen voor de implementatie; Trainen van gebruikers in het gebruik van de applicatie; Werken in een Agile omgeving. Hier ga je werken De organisatie begeeft zich in de retail branche en focust zich

Bekijk vacature »

WordPress & Azure Developer

Dit ga je doen Zowel front- als back-end development aan de online website omgeving; Het up-to-date houden van alle WordPress-sites; Koppelingen maken tussen applicaties; Meedenken en adviseren over verbeteringen; Development door middel van WordPress, Javascript, HTML en CSS; Werken binnen Scrum/Agile team. Hier ga je werken Voor een grote overheidsinstelling in Den Haag zijn wij opzoek naar een WordPress developer, met kennis en ervaring op het gebied van Azure. De organisatie zit in een grote transitie waarbij de gehele website/online omgeving vernieuwd zal gaan worden. Binnen dit Scrum/Agile team ben je verantwoordelijk voor deze grote migratie/ombouw van de omgeving. De

Bekijk vacature »

Java developer Zorgsysteem

Dit ga je doen Werken aan het eigen gebouwde zorgsysteem; Verbeteringen maken en toepassen binnen de applicatie; Jij gaat werken aan de Back-end van de applicatie en sporadisch werk je mee aan de Front-end; Samenwerken met andere teams voor een optimaal resultaat; Jij kan 'clean' werken en high quality code schrijven; Jij werkt resultaatgericht. Hier ga je werken De organisatie houdt zich bezig met diverse applicaties met betrekking tot zorgregistratie. Dankzij hun systeem komt alle informatie, omtrent de zorg van een patiënt, op een overzichtelijke en toegankelijke manier samen in één systeem te staan. Op deze manier is deze informatie

Bekijk vacature »

Back-end PHP Developer

Dit ga je doen Her- en uitbouwen van het inhouse softwareplatform dmv PHP; Onderhouden van bovengenoemd platform in PHP; Sparren met het team; Meedenken over nieuwe functionaliteiten, security etc; Jouw input leveren aan het proces door op de hoogte te blijven van nieuwe ontwikkelingen etc. Hier ga je werken Onze klant, gevestigd in de omgeving van Alkmaar, levert wereldwijd oplossingen op het gebied van IT. Dag in dag uit werken zij met veel passie aan hun product waarmee ze streven naar verbeteringen binnen zorg. Voor onze klant zijn we op zoek naar een medior PHP Developer. Je komt te werken

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je hier

Bekijk vacature »

Als Lead PHP developer bijdragen aan het onderwijs

Functie Als Lead PHP developer zet je samen met het team en de andere lead developers de technische lijnen uit als het gaat om het ontwikkelen van de applicaties en bepaal je samen met de PO waar elke sprint aan gewerkt zal worden. Je kunt op basis van een user story een goede aanpak formuleren en een planning opstellen, en andere hierin meenemen. Wanneer je team code schrijft verwacht je degelijke oplossingen, bij voorkeur gebruik makend van Domain Driven Design. Je ziet toegevoegde waarde in het beoordelen van het werk van collega’s om zo samen te streven naar hoge kwaliteit

Bekijk vacature »

API Developer Red Hat Fuse

Dit ga je doen Als API Developer zal je verantwoordelijk zijn voor het: het maken van API's en het correct laten draaien van de API's op het platform. Hierdoor kom je in aanraking met Red Hat Fuse, Springt Boot, 3Scale, Red Hat SSO, Openshift en Azure DevOps; zorgen voor de kwaliteit van de ontwikkeling, integratie en prestaties van de API's; zorgen voor een stabiel integratieplatform. Hier ga je werken Deze organisatie is een toonaangevende speler in de vastgoedbranche en telt momenteel ruim 500 medewerkers. Met meer dan 150 applicaties staat er een complex applicatielandschap dat hoofdzakelijk op OpenShift, Azure en

Bekijk vacature »
Peter  paul

peter paul

16/03/2015 16:15:39
Quote Anchor link
Hallo, ik heb een vraag met betrekking tot joins. Ik verwijs van uit "test2" meerdere keren naar "test1". Op welke wijze moet ik dan mijn query in elkaar zetten.

Dit is wat ik tot nu toe heb, het werkt perfect maar ik vraag me af of dit niet makkelijker kan. Nu zijn het nog maar 3 verwijzingen maar in mijn project zullen het er minstens 30 worden.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php

include ('connect.php');
/*
test1
+--+----+
|id|naam|
+--+----+
| 1|bla1|
| 2|bla2|
| 3|bla3|
+--+----+

test2
+--+---+---+---+
|id|VB1|VB2|VB3|
+--+---+---+---+
| 1| 2 | 1 | 1 |
| 2| 3 | 3 | 1 |
| 3| 3 | 1 | 2 |
+--+---+---+---+

Joined
+--+---+-----+---+-----+---+-----+
|id|VB1|naam1|VB1|naam2|VB1|naam3|
+--+---+-----+---+-----+---+-----+
| 1| 2 | bla2| 1 | bla1| 1 | bla1|
| 2| 3 | bla3| 3 | bla3| 1 | bla1|
| 3| 3 | bla3| 1 | bla1| 2 | bla2|
+--+---+-----+---+-----+---+-----+
*/


 $resultaat2 = mysqli_query($connect,  "SELECT a.id, a.VB1, b.naam AS naam1, a.VB2, c.naam AS naam2, a.VB3, d.naam AS naam3
                                        FROM test2 AS a
                                        INNER JOIN test1 AS b
                                        ON a.VB1 = b.id
                                        INNER JOIN test1 AS c
                                        ON a.VB1 = c.id
                                        INNER JOIN test1 AS d
                                        ON a.VB1 = d.id
                                       "
);

    while ($record2 = mysqli_fetch_array($resultaat2))
    {

        echo $record2['id']  . " - " . $record2['VB1'] . " - " . $record2['naam1'] . " - " . $record2['VB2'] . " - " . $record2['naam2'] . " - " . $record2['VB3'] . " - " . $record2['naam3'] . "<br>";
    }


?>
Gewijzigd op 16/03/2015 16:17:27 door Peter paul
 
PHP hulp

PHP hulp

16/05/2024 08:14:56
 
Ivo P

Ivo P

16/03/2015 16:22:28
Quote Anchor link
op zich kan dat zo.

Maar ik zou in elk geval proberen om aliasen te gebruiken die duidelijk zijn.

a, b en c zijn dat niet.

En ook niet te veel afkorten. Mogelijk dat de afkortingen je nu duidelijk zijn, maar ik werk al een jaar of 8 aan een project mee, waar me sommige afkortingen in php of in kolomnamen me nu nog altijd niet duidelijk zijn. idocid lid, pid etc.

SELECT ...
FROM tabelnaam berichten
JOIN test1 verzender ON verzender.id = berichten.VB1
JOIN test2 ontvanger ON ontvanger.id = berichten.VB2

etc
 
Thomas van den Heuvel

Thomas van den Heuvel

16/03/2015 16:33:56
Quote Anchor link
Quote:
Dit is wat ik tot nu toe heb, het werkt perfect maar ik vraag me af of dit niet makkelijker kan. Nu zijn het nog maar 3 verwijzingen maar in mijn project zullen het er minstens 30 worden.

En ga je dan 27 kolommen bijmetselen? Waarom maak je niet gewoon een koppeltabel?
 
Peter  paul

peter paul

16/03/2015 16:35:18
Quote Anchor link
Ik zal de aliassen zeker aanpassen. Maar er is dus geen andere mogelijkheid dan elke keer dat ik verwijs naar "test1"zal ik een nieuwe join moeten toevoegen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 $resultaat2
= mysqli_query($connect,  "SELECT test2.id, test2.VB1, VB1.naam AS naam1, test2.VB2, VB2.naam AS naam2, test2.VB3, VB3.naam AS naam3
                                        FROM test2
                                        JOIN test1 AS VB1 ON test2.VB1 = VB1.id
                                        JOIN test1 AS VB2 ON test2.VB1 = VB2.id
                                        JOIN test1 AS VB3 ON test2.VB1 = VB3.id
                                       "
);

    while ($record2 = mysqli_fetch_array($resultaat2))
    {

        echo $record2['id']  . " - " . $record2['VB1'] . " - " . $record2['naam1'] . " - " . $record2['VB2'] . " - " . $record2['naam2'] . " - " . $record2['VB3'] . " - " . $record2['naam3'] . "<br>";
    }

?>


EDIT Ik heb nog niet eerder gehoord van een koppeltabel ik ga maar eens googele.
Gewijzigd op 16/03/2015 16:36:16 door peter paul
 
Thomas van den Heuvel

Thomas van den Heuvel

16/03/2015 16:41:51
Quote Anchor link
Wat je in wezen doet met een koppeltabel is een relatie in een apart record stoppen, in plaats van in een aparte kolom. Voor het toevoegen van een record hoef je geen structurele wijziging door te voeren in je database, voor het echt toevoegen van een kolom wel...

Omdat je tabellen nogal abstracte namen hebben weet ik niet precies wat dit concreet moet voorstellen?

Ook heeft test2.id (met id 1) twee keer een verwijzing naar test1.id (met id 1). Dat kan dus ook voorkomen? Is de volgorde nog op een of andere manier relevant? Die extra informatie kun je dan ook opnemen in je koppeltabel.

Maak je ook gebruik van een relationeel databasetype voor je tabellen (InnoDB)?
 
Peter  paul

peter paul

16/03/2015 16:56:22
Quote Anchor link
Ik zal het wat minder abstract proberen te maken.

je zou het als bijvoorbeeld leerlingen en de lessen die zij volgen kunnen zien. leerlingen hebben een bepaald id, en volgen in dit voorbeeld drie lessen, dat zijn de verwijzingen in "leerlingen" naar "lessen". uiteraard bevat lessen meer informatie dan alleen de naam van het vak.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
lessen
+--+--------+------+
|
id|    naam|leraar|
+--+--------+------+
|
1|   frans|  piet|
|
2|     gym|  kees|
|
3|  engels| klaas|
|
4|wiskunde|  anna|
+--+--------+------+


Leerlingen
+--+----+----+----+
|
id|les1|les2|les3|
+--+----+----+----+
|
1| 2  | 1  | 4  |
|
2| 3  | 4  | 1  |
|
3| 3  | 1  | 2  |
+--+----+----+----+


Joined
+--+----+------+----+--------+----+--------+
|
id|les1| naam1|les2|   naam2|les2|   naam3|
+--+----+------+----+--------+----+--------+
|
1|  2 |   gym|  1 |   frans|  4 |wiskunde|
|
2|  3 |engels|  4 |wiskunde|  1 |   frans|
|
3|  3 |engels|  1 |   frans|  2 |     gym|
+--+----+------+----+--------+----+--------+

?>
Gewijzigd op 16/03/2015 16:57:50 door peter paul
 
Thomas van den Heuvel

Thomas van den Heuvel

16/03/2015 17:40:09
Quote Anchor link
Om deze analogie te volgen: je koppeltabel zou dan een lesroosters-tabel kunnen zijn, denk ik.

Hierbij heb je in deze tabel een extra kolom genaamd tijdvak (die je weer naar een tijdvakken-tabel kunt laten verwijzen), als de volgorde van belang is.

(EDIT: oftewel: leerling X volgt in tijdvak Y vak Z)

Begin je de oplossing een beetje te zien?
Gewijzigd op 16/03/2015 17:41:35 door Thomas van den Heuvel
 
Frank Nietbelangrijk

Frank Nietbelangrijk

16/03/2015 18:28:36
Quote Anchor link
Het lijkt nergens op :-)

lessen is goed.

Leerlingen wordt zoiets:
- id
- naam
- geb. datum
- email
(etc)

dan de jointabel:
In een beetje database zit meer dan 1 jointabel dus een naam als joined snijd geen hout.
Meestal wordt het zo gedaan:

leerlingen_lessen
- leerling_id
- les_id

er hoeft geen primary key in een koppeltabel.

stel dat leerling 1 les 1 en les 2 volgt
stel dat leerling 2 les 2 en les 3 volgt
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
--------------------
leerling_id | les_id
--------------------
     1      |   1
     1      |   2
     2      |   2
     2      |   3




Toevoeging op 16/03/2015 18:30:27:

Gouden regel is: nooit meerdere kolommen maken in de trant van les1, les2, les3 etc. In dat geval moet je naar een nieuwe tabel.
Gewijzigd op 17/03/2015 09:59:37 door Frank Nietbelangrijk
 
Thomas van den Heuvel

Thomas van den Heuvel

16/03/2015 19:37:27
Quote Anchor link
Frank Nietbelangrijk op 16/03/2015 18:28:36:
Het lijkt nergens op :-)

Wat lijkt nergens op?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

16/03/2015 20:15:14
Quote Anchor link
Thomas van den Heuvel op 16/03/2015 19:37:27:
Wat lijkt nergens op?


meerdere kolommen maken in de trant van les1, les2, les3
 
Thomas van den Heuvel

Thomas van den Heuvel

16/03/2015 20:23:42
Quote Anchor link
Meestal niet. Ook in dit geval niet, mede omdat de topicstarter zelf aangeeft dat het er op den duur makkelijk 30+ kunnen worden (het aantal flexibel is / niet op voorhand vast lijkt te staan).
 
Frank Nietbelangrijk

Frank Nietbelangrijk

16/03/2015 21:00:51
Quote Anchor link
Ja klopt. Als het aantal kolommen echt de eerste 10 eeuwen vast staat en het aantal niet te groot is dan kun je ze als kolommen naast elkaar opnemen. Een recent voorbeeld van een ander topic is een schaaktoernooi waarbij er altijd twee spelers tegelijk spelen. schaken doe je alleen met twee spelers en dat zal ook altijd zo blijven (lijkt me) dus dan kun je een kolom speler1 en een kolom speler2 maken.
 



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.