MySQL Joins

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer C# .NET

Functie omschrijving Software Developer C# .NET gezocht voor een dynamische organisatie! Ben jij net afgestudeerd of toe aan een volgende stap in je maatschappelijke carrière? Lees dan snel verder! Wij zijn op zoek naar een Software Developer die klaar is voor een nieuwe uitdaging en die een organisatie in de regio Houten wil versterken. Je werkt in deze functie aan verschillende projecten en gaat vaak op bezoek bij klanten. In deze functie kun je een grote mate van uitdaging, diversiteit en verantwoordelijkheid verwachten. Bedrijfsprofiel Waar kom je te werken? Je komt te werken bij een organisatie dat gespecialiseerd is in

Bekijk vacature »

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 »

C# .NET Software Ontwikkelaar

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 Arnhem 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. Als C# .NET Developer binnen dit bedrijf houd je je niet alleen bezig met het verbeteren van

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 »

Backend Developer Integraties API HBO REST

Samengevat: Deze werkgever is een IT-consultancy. Wil jij werken als Backend Developer Integraties? Heb jij kennis van gangbare berichtformaten? Vaste baan: Backend Developer Integraties API HBO €3.100 - €4.400 Zij bieden innovatieve oplossingen die bedrijven efficiënter en wendbaarder maken, waardoor onze klanten zich net zo snel kunnen ontwikkelen als de business van hen vraagt. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om de inzet van technologie. Deze werkgever staat open voor elke nieuwe trend. Onze systemen zijn groot en ingewikkeld. Hou jij van diepgang

Bekijk vacature »

Java Developer

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Senior Developer Betty Blocks Blauwe Haven Rotterd

Functieomschrijving Voor de Politie zijn wij opzoek naar een Senior Developer Betty Blocks Blauwe Haven Rotterdam. De politieorganisatie heeft jaarlijks te maken met een aanzienlijk aantal politiemedewerkers die vanwege mentale overbelasting niet of beperkt inzetbaar zijn. De Blauwe Haven Rotterdam ondersteunt deze politiemedewerkers in hun herstel en re-integratieproces. De huidige digitale systemen van de Politie bieden onvoldoende ondersteuning in het herstel- en re-integratieproces van politiemedewerkers. Zowel voor de politiemedewerkers als voor de organisatie. Politiemedewerkers worden buitengesloten, waardoor zij eigen regie verliezen. Begeleiders kunnen de voortgang van de medewerkers niet goed monitoren. Management beschikt niet over de mogelijkheid trends te signaleren

Bekijk vacature »

Medior Front-end Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Medior Front-end Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

Bekijk vacature »

.NET Developer Medior Senior

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Herbruikbare componenten maken; Testen; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als .NET Developer kom jij terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als .NET Developer werk jij aan het ontwikkelen van verbeterde software voor

Bekijk vacature »

Junior Software Developer

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer!? Sta jij aan het begin van jouw loopbaan of heb jij misschien al enige ervaring? Vind jij het daarnaast belangrijk om jezelf constant te kunnen ontwikkelen en uitdagen? Lees dan snel verder! Voor een vooraanstaand softwarehuis in Nieuwegein ben ik op zoek naar een Junior Software Developer. De eigenaar van het bedrijf is ervan bewust dat je als junior nog een hoop kan leren, waardoor je de eerste maanden veel begeleiding en diverse trainingen krijgt. Daarna ga je samen met je collega's aan zowel kleine als grote projecten werken.

Bekijk vacature »

Senior PHP developer

Functie Als Senior PHP developer heb je een sterke mening over de architectuur van projecten en de processen binnen het team. Je bent de sparringpartner voor je Team Lead. Ook ondersteun je met jouw kennis de minder ervaren developers in jouw team. Ze werken regelmatig aan projecten vanaf scratch en dit geeft ruimte om voor nieuwe technieken te kiezen. Naast het ontwikkelen van software ben je continue bezig om ook jezelf te ontwikkelen. Ze werken met o.a.: PHP, Laravel, Doctrine, PHP Unit, Behat, React, TypeScript, (My)SQL, Postgress, Redis, ElasticSearch, Docker, Nginx, GIT flow, JIRA, AWS. Eisen • HBO werk- en

Bekijk vacature »

Outsystems Developer Junior

Dit ga je doen Bouwen aan nieuwe en innovatieve applicaties; Maken van koppelingen tussen Outsystems en het bestaande applicatielandschap; Troubleshooting op bestaande software. Hier ga je werken De organisatie is internationale speler binnen de bouwbranche en richt zich op de infrastructuur, zowel boven als onder de grond. Ze zijn ruim 1100 man groot en maken op IT vlak een mooie groei door. Als junior Outsystems Developer kom je te werken op een IT-afdeling van zo'n 25 man groot. Een aantal jaar geleden hebben ze de keuze gemaakt om zich meer te gaan richten op ontwikkeling en door de groei van

Bekijk vacature »

Junior PHP ontwikkelaar

Functie Wij hebben onlangs onze eerste collega’s aangenomen, waardoor ons development team momenteel uit 4 personen bestaat. We bouwen onze software op basis van een PHP-framework (wat op zichzelf een Symfony framework is). Qua ontwikkeling focussen wij ons op 3 focus velden; – API-ontwikkeling/ Component Creatie – Implementatie – Framework ontwikkeling; het toevoegen van nieuwe functionaliteit of interne microservices Onze senior software engineer focust zich momenteel op de laatste twee punten, maar wij komen handen te kort op het eerste veld. Daarom zijn wij op zoek naar een enthousiaste junior software engineer die graag de kneepjes van het vak wil

Bekijk vacature »

SQL database developer

Functie omschrijving Voor een software bedrijf in omgeving Breda zijn wij op zoek naar een SQL database ontwikkelaar. Dit bedrijf bouwt applicaties om processen in distributiecentra te optimaliseren. Ter uitbreiding van het huidige team developers zijn wij op zoek naar een SQL database ontwikkelaar. De klanten van dit groeiende bedrijf zitten door heel Europa en jouw werkzaamheden zullen er als volgt uitzien: Het samenstellen van de software op basis van de input vanuit de klant (T-SQL & C#.NET). Het bezoeken van klanten om de processen en mogelijkheden in kaart te brengen. Het ontwerpen van databases met T-SQL als programmeer laag.

Bekijk vacature »

Lead Webdeveloper

Als Lead webdeveloper bij KUBUS ben je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de webapplicatie en services van BIMcollab. In je rol als lead developer zoek je als vanzelf op een creatieve manier naar het optimum tussen benodigde implementatie-tijd, de performance van de applicatie en een snelle go-to-market van features, aansluitend bij onze geautomatiseerde test- en release train. Hierbij bewaak je in samenwerking met de andere senior ontwikkelaars in je team de architectuur van de applicatie en adviseer je de product owner over noodzakelijke refactoring om de onderhoudbaarheid van het platform te verbeteren. Ons

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

05/11/2024 11:33:36
 
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.