MySQL Joins

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

NodeJS developer

Functie Als Fullstack developer kom je te werken in het ontwikkelteam. Je bent samen met je collega’s continu bezig om de software uit te breiden, maar hiernaast doe je onderzoek naar de inzet van nieuwe technieken, tools of bijvoorbeeld Machine Learning. Ze willen met hun software echt voorlopen op andere en toegevoegde waarde leveren voor de eindgebruiker. Mede hierom zijn ze erg benieuwd naar iemand zijn persoonlijkheid, of hij graag nieuwe dingen uitzoekt (Google!), en initiatief neemt. Qua technische kennis zoeken ze iemand die goed op de hoogte is van de nieuwste ontwikkelingen, daar zij nu ontwikkelen op NodeJs back-end,

Bekijk vacature »

PHP Developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Breda ben je als PHP/Symfony Developer niet alleen gefocust op het ontwikkelen van software. Daarnaast ben je voortdurend bezig met het zoeken naar nieuwe trends en ontwikkelingen die van waarde kunnen zijn voor de efficiëntie van software ontwikkeling. Hieronder een kort overzicht van jouw takenpakket: Het ontwerpen en implementeren van webapplicaties met het Symfony Framework; Het schrijven van een schone en efficiënte codes; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klant; Onderhouden en updaten van bestaande applicaties die zijn gebouwd met het

Bekijk vacature »

Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12946 Introductie We are looking for a Java Developer! Our client is one of the most innovation companies located within the Netherlands. We provide high quality software in a high-tech and challenging market. Functieomschrijving The department is specialized in creating and developing high quality software for manufacturing automation in a high tech environment. We strive to provide our clients with high quality software and deliver state of the art solutions in a variety of ways. Creating software infrastructure using Java SE / EE Create applications to fine tune manufacturing processes

Bekijk vacature »

Database ontwikkelaar

Functieomschrijving Wil jij aan gave logistieke softwareprojecten werken en bij een uniek softwarebedrijf in de regio van Tilburg? Wacht niet langer en reageer snel op deze vacature. Als Database ontwikkelaar ga je aan de slag het schrijven van stored procedures en verder uitbouwen van de SQL database. Je werkt in een database team, met allemaal mensen die energie krijgen van software en techniek. Verder krijg je als taak: Optimaliseren en uitbouwen van de MS SQL databases die gebruikt worden; Optimaliseren van query's, waardoor er efficiënter gewerkt kan worden; Je werkt met de technieken T-SQL of PL/SQL; Bij interesse kan je

Bekijk vacature »

Als Front-end developer samenwerken met de beste c

Functie Momenteel zijn we voor één van de projecten bij hun key partner, een voorloper in de energiesector, op zoek naar gedreven Front-end developers. Ze nemen de lead in dit project en werken uitsluitend met vooruitstrevende technologieën. Ze verwachten dat de technologie die hier wordt ontwikkeld uiteindelijk door veel meer grote corporates, in verschillende sectoren zal worden toegepast. Dit is dan ook een heel uitdagend project om aan mee te gaan werken. Het team bestaat o.a. uit User Experience designers, Data Scientists en Software Engineers. De consultants en ontwikkelaars werken volgens de Design Thinking methode waarbij de eerste stappen van

Bekijk vacature »

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Medior/senior Front-end developer

Functie Je maakt deel uit van een DevOps Scrum team en werkt samen met back-end developers, test-engineers, interaction designers en een projectmanager. Er zijn verschillende groepen Scrum teams. Een roadmap team is jouw ‘’thuisbasis’’, daar wordt gewerkt aan doorontwikkeling van bestaande omgevingen voor een aantal klanten. Hiernaast zijn er projectteams waar nieuwe omgevingen worden gebouwd, of grote complexe wijzigingen worden doorgevoerd op bestaande omgevingen. Je kunt (afhankelijk van jouw wensen en doelen) dus afwisselend werken in beide teams. Hiernaast participeer je in het Chapter Front-end development waar gezamenlijk kennis en ervaring wordt gedeeld. Als Front-end developer is het jouw doel

Bekijk vacature »

Senior Node.js developer Digital Agency

Functie Door de groei van de organisatie zijn ze op zoek naar een Tech Lead. Als tech lead ben jij verantwoordelijk Als Back end Node.js developer kom je terecht in een van de 8 multidisciplinaire teams in het projectenhuis. Afhankelijk van jouw interesses, wensen en capaciteiten word je bij projecten en onderwerpen naar keuze betrokken. Als ervaren ontwikkelaar zul jij vaak leiding nemen in de projecten en in het team een aanvoerder zijn van technische discussies. Uiteindelijk wil jij natuurlijk de klantwensen zo goed mogelijk vertalen naar robuuste code. De projecten kunnen varieren van langlopende- tot kleinschalige trajecten. Voorheen werkte

Bekijk vacature »

PHP Software Developer

Functie omschrijving PHP Software Developer gezocht! Voor een organisatie in de regio Zeist die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in een scrumteam aan de ontwikkeling van een medicatiebewakingssysteem; Meedenken over de mogelijkheden en onmogelijkheden van projecten;

Bekijk vacature »

C# Developer

Functie omschrijving Voor een softwarebedrijf in de omgeving van Veghel zijn we op zoek naar een C# developer. Word jij blij van ontwikkelen in C# en .NET? Lees dan snel verder! Jouw werkzaamheden zullen er als volgt uit gaan zien: Door middel van ASP.NET, MVC Framework en C# ga je webshops, websites en webapplicaties ontwikkelen. Je zorgt voor de optimalisatie van bestaande software en de automatisering van bedrijfsprocessen. Op basis van de wensen van de klant ga je samen met je collega's ga je op zoek naar de juiste oplossingen en je gaat dit uitwerken tot een mooi eindproduct. Bedrijfsprofiel

Bekijk vacature »

.Net Ontwikkelaar

Dit ga je doen Het ontwerpen en ontwikkelen van software voor klanten; Het bijdragen van kennis en ervaring; Het integreren van van de software en afstemmen met klanten; Het functioneel testen van de ontwikkelde software. Hier ga je werken Voor onze relatie zijn wij momenteel op zoek naar een .Net Developer die wilt werken aan software die draait op machines wereldwijd. De organisatie produceert software voor applicaties die gebruikt worden in verschillende branches. De software wordt geleverd aan fabrikanten van verschillende robotica en machines. Als .Net ontwikkelaar ben je intern onderdeel van het team wat de applicatie omgevingen ontwikkeld en

Bekijk vacature »

Back-end Developer

Functieomschrijving Voor een erkende werkgever in de regio van Middelburg zijn wij op zoek naar een enthousiaste PHP / Symfony Developer. Een ambitieus persoon die het gemotiveerde development team komt versterken met het realiseren van nieuwe en complexe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor professionele groei? Dit ga je doen: Je bent verantwoordelijk voor de beheer en ontwikkeling van de serviceportal in Symfony en de webshops in de tweede versie van Magento; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Medior/Senior Software Developers gezocht in de Ra

Functie Op dit moment staan er posities open voor de volgende functies: Front-end, Back-End & Fullstack software developer. Als Front-End software developer werk je met JavaScript en de bijbehorende technologieën zoals TypeScript, Angular, React, Vue en Svelte. Als Back-End software developer ben je bezig in NodeJS en doe je dit met behulp van AWS, NoSQL, REST en GraphQL. Je krijgt leuke en uitdagende opdrachten met een gemiddelde duur van anderhalf jaar. Hier werk je in een team met andere IT’ers aan het ontwikkelen en verbeteren van software. Je wordt begeleid door een accountmanager die fungeert als jouw aanspreekpunt. Het team

Bekijk vacature »

Front-End React Developer

Als Front-End React Developer verbeter je de user experience van onze eigen webapplicaties voor onze collega's binnen Coolblue. Wat doe je als Front-End React Developer bij Coolblue? Als Front-end React Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten met React.js. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Front-end React Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Verbeteren van de gebruiksvriendelijkheid van onze webshop

Bekijk vacature »

Senior Java Ontwikkelaar

Dit ga je doen Werken aan uiteenlopende interne projecten voor grote (internationale) organisaties; Ontwikkelen van diverse (web)applicaties en platformen met technieken als Java, Azure en ASP.NET; Complexe vraagstukken tackelen met jouw expertise en ervaring; Waar nodig help jij je collega's om samen tot de juiste oplossing te komen. Hier ga je werken Als Java Developer kom je te werken bij een internationale organisatie in regio Amsterdam die zich richt op procesoptimalisatie door middel van zeer complexe IT oplossingen. Dit doen zij op het allerhoogste niveau met vestigingen over heel de wereld en met een groot aantal aansprekende, maatschappelijk betrokken klanten.

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

19/04/2024 10:10:05
 
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.