2 tabellen vergelijken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior/Senior Backend PHP developer - €3500 -

Bedrijfsomschrijving Voor een scale-up organisatie zijn wij op zoek naar een Medior/Senior Backend PHP developer. Ze bestaan inmiddels 5 jaar en ze maken complexe applicaties voor de B2B markt. Denk hierbij aan websites en webapplicaties voor diverse klanten in verschillende branches. Het team bestaat uit 15 gepassioneerde medewerkers. Vanwege het succes willen ze de groei die ze de afgelopen jaren hebben doorgemaakt verder uitbreiden en daar kan jij een onderdeel van gaan worden. Door de complexiteit van de applicaties zoeken ze naar meerdere developers vanaf Medior niveau. De cultuur en sfeer binnen het bedrijf is laagdrempelig en lekker informeel. Functieomschrijving

Bekijk vacature »

Full Stack Developer

Wat ga je doen? Het bouwen van een Corporate website en Community Portal, is dat iets wat jij al eerder hebt gedaan? Ben jij minimaal 32 uur beschikbaar en wil jij graag samenwerken met het ICT Robotics & Applications Team van Yource? Word onze nieuwe Full Stack Developer! Als Full Stack Developer ga jij je bezig houden met alles wat met web-ontwikkeling te maken heeft. Onder andere het bouwen en de doorontwikkeling van onze Corporate websites en Community Portal, deze zijn cruciaal in onze strategie. De Portal is dé plaats van waaruit we met potentiele kandidaten, onze members en partners

Bekijk vacature »

Front-end Developer / Angular

Bedrijfsomschrijving Als Front-end Developer ga je in een DevOps team aan de nieuwste digitale technologieën werken om klanten over de hele wereld te ondersteunen met het optimaliseren van (afval)waterzuivering systemen. Door middel van real-time data in combinatie met voorspellende analyses, AI, Deep Learning en Machine Learning zorgen jij en je team voor inzichten die ernstige milieu en watervervuiling weten te voorkomen. Jouw ervaring als Front-end developer zorgt ervoor dat deze klanten altijd de nieuwste gebruikersinterfaces hebben en zo makkelijk mogelijk deze data kunnen lezen. Zo is de organisatie al meer dan honderd jaar actief bezig met het aanpakken van confrontaties

Bekijk vacature »

Junior Front-End Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale aspecten van Coolblue. Wat doe je als Junior Front-End Developer bij Coolblue? Als Junior Front-End Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen om te groeien als Junior Developer. Op dat moment komt je wil om steeds te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te maken. Je sterk analytisch vermogen komt dan goed van pas!

Bekijk vacature »

Desktop Support Engineer

WHO WE ARE AND WHAT WE DO IMC is a leading global market maker, using algorithmic trading and advanced technology to buy and sell securities on multiple trading venues worldwide. We provide liquidity to the financial markets, driving efficiencies for buyers and sellers. Founded in 1989, we are an ambitious, innovative company and identified early on the importance technology would play in the fast-paced evolution of trading. This entrepreneurial spirit still drives us today and can be found in all of our offices around the world. IMC – Where Technology drives Trading Trading nowadays happens in a highly competitive technological

Bekijk vacature »

Full Stack Developer / .NET

Bedrijfsomschrijving Deze organisatie is gesitueerd in de omgeving van Zwolle en is actief binnen de financiële dienstverlening voor klanten. Ze is actief op twee locaties, één in de Randstad en één in het Noordoosten van het land. Voor de locatie in de regio Zwolle, waar ongeveer 35 collega's werken, zijn zij op zoek naar een medior Full Stack Developer. Het betreft een dynamische omgeving waar collega's prettig en informeel met elkaar omgaan. De organisatie houdt zich grotendeels bezig met het ontwikkelen van financiële applicaties welke onder andere bestaan uit een CRM, DMS, diverse klantportalen en calculatie software. Als Full Stack

Bekijk vacature »

Platform Community Manager

Als Platform Community Manager ben je een onmisbare schakel tussen de gebruikers van het Mijnwinkel platform en de organisatie. Je bent het centrale aanspreekpunt en speelt adequaat in op reacties, vragen en opmerkingen met betrekking tot het platform. Je stimuleert en ondersteunt de interactie tussen gebruikers en faciliteert daarbij de groei van hoogwaardige content. Daarnaast plaats je ook zelf content om de interactie met gebruikers aan te gaan. Omdat je bovenop het vuur zit en als geen ander weet hoe het platform functioneert, kan je input leveren over de workflows en processen en identificeer je verbeteringen die van invloed zijn

Bekijk vacature »

Junior .Net Developer voor geautomatiseerde emailm

Onze klant is een Email Marketing Automation ontwikkelaar voor vele grote klanten in Nederland en België. Met hun marketingsoftware weten zij dagelijks miljoenen mensen te bereiken voor hun klanten. Als Junior .Net Developer van het jonge en informele Innovatie Team breng jij het platform naar een hoger niveau. Je bent hierbij als junior vanaf dag 1 volledig betrokken bij het team. Je bent betrokken de volledige software development life cycle en gaat dan ook mee naar de grote klanten. Terwijl je wordt ingewerkt en dagelijks spart met je 15 gezellige collega’s, werk je aan zowel de front-end als back-end van

Bekijk vacature »

Business Intelligence Developer

Dit is de rol Boels pitstop De organisatie Boels is zich aan het professionaliseren en digitaliseren. Jij gaat hier een grote rol in spelen. Wat doet de organistaie Boels? Hoe doen we het? Waar staan we? Waar willen/moeten we naartoe? De afdeling BI krijgt steeds meer (aan)vragen voor dashboards/data etc. vanuit de organisatie om dit te onderzoeken. Dit doen we centraal vanuit Sittard. Als Business Intelligence Developer werk je aan projecten (klein of groot), waar we met data inzichten verschaffen aan onze organisatie. Je denkt mee met onze interne stakeholders, draagt initiatieven aan en zorgt er vervolgens voor dat de

Bekijk vacature »

Full Stack Java Developer

Functieomschrijving Met jouw expertise zorg je als java developer voor de meest plezierige en efficiënte klant ervaring. Met jouw state-of-the-art-systemen verbeter je onze business en maak je echt impact! Want als je in ons tech team werkt, houd je jezelf en Nederland in beweging. Wij zijn continu bezig onze business en processen te optimaliseren, zodat we onze klanten en kandidaten meer gemak, snelheid en transparantie kunnen bieden. Impactvolle tech, daar doen we het voor. Artificial intelligence, machine learning en innovatieve zoek oplossingen. Zoek oplossingen? Yes! Solliciteren moet makkelijk en leuk zijn. Toch? Daar kan jij aan bijdragen! wat ga je

Bekijk vacature »

Javascript Developer (Angular/Node.js)

Bedrijfsomschrijving Ben jij een JavaScript developer en zoek je een nieuwe uitdaging binnen een inspirerende omgeving waarbij innovatie een belangrijke rol speelt? Dan ga je je hier zeker thuisvoelen! Deze organisatie zorgt dat bedrijven efficiënter en commercieel succesvoller worden. Dat doen ze door de combinatie van data en IT optimaal te gebruiken. Je komt terecht in een gepassioneerd team van 12 die allemaal een passie hebben voor data en IT. Je komt terecht in een prettige, informele en flexibele organisatie waar je met veel plezier aan de slag zal gaan. Door het succes zal het team de komende tijd/jaren verder

Bekijk vacature »

GEO-ICT/Smallworld GIS Ontwikkelaar

Bij onze klanten vormen Geographical Information System (GIS) systemen de basis van Asset Data Management. Zie jij het als een uitdaging om als onderdeel van een DEVOPS team de systemen van onze klanten te helpen vormgeven en continu te verbeteren? Wat ga je doen? Ons team heeft als doel nog relevanter te worden voor onze klantengroep van netbeheerders. Wij hebben een grote GEO-ICT Practice en daarmee zijn we in staat een fundamenteel deel van de basisregistratie van assets voor onze klanten vorm te geven. Dat doen we door het bedenken van concepten, onze klanten te adviseren op GEO-ICT gebied en

Bekijk vacature »

ASP.NET CORE developer Fullstack / Intern

Bedrijfsomschrijving Mijn klant houdt zich bezig met alleen maar maatwerk software. Door de flexibiliteit van de developers bedienen ze bijna elke markt; van start-ups tot aan de grotere internationaal georiënteerde bedrijven. Bepaalde applicaties zijn standaard geworden en worden als totaalpakket aan de klant aangeboden. Andere applicaties worden maandelijks onder de loep genomen. Kortom: genoeg uitdaging voor een .NET Developer. Je komt te werken in een gezellig team van ongeveer 20 mensen met een platte structuur. Er wordt veel voor het personeel geregeld en regelmatig ga je met het team op pad. Je collega's zijn IT minded mensen. Het gaat hier

Bekijk vacature »

Senior C# developer

Samen met het development team zorg je ervoor dat alle systemen achter de schermen vlekkeloos werken. Wat doe je als Senior C# developer bij Coolblue? Als C# developer doe je regelmatig mee aan brainstormsessies over user experience, data en task flow met de UX Designer, Product Owner en Data Scientist in je team. Daarnaast schrijf je op zichzelf staande, consistente en testbare code die goed onderhoudbaar en toekomstbestendig is. Ook C# developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Werken met verschillende soorten data-opslag, zoals Oracle of Dynamo/Cosmos. Problemen oplossen

Bekijk vacature »

Systeembeheerder Citrix

Senior Systeembeheerder Citrix Welkomstbonus van € 5.000,- Bij T2 zorgen we goed voor elkaar en doen wij leuke dingen met leuke mensen. We zorgen voor uitdagende opdrachten zodat jij jezelf onbeperkt kan blijven ontwikkelen. Ben jij een ervaren systeembeheerder Citrix en wil je het beste uit jezelf halen? Dan ben je van harte welkom bij T2 en ontvang je onze welkomstbonus ter waarde van € 5.000,-. Wat mag je nog meer verwachten? Als je met ons de uitdaging aangaat dan bieden we je het volgende: Dienstverband voor onbepaalde tijd Salaris tussen de € 4.000,- en € 4.500,- bruto per maand

Bekijk vacature »
Ramon van Dongen

Ramon van Dongen

08/08/2018 09:04:01
Quote Anchor link
Hallo,

Ik heb 2 "bijna" dezelfde tabellen.

Tabel 1 wordt gevuld vanuit een tool met stappenplan om producten samen te stellen.

Tabel 2 bestaat uit samengestelde producten die al eerder verkocht zijn.

Ik wil nu een vergelijking doen aan het einde van de tool om te controleren of de invoer in tabel 1 wel of niet bestaat in tabel 2. En bij zo ja; wat het artikel_ID is. Dan moet dat artikel_ID gekoppeld worden in tabel 2. Bij zo nee; een nieuw artikel_ID aanmaken.

Maar helaas kom ik er niet aan uit.
Dit zou toch alleen/grotendeels in MySQL moeten kunnen zonder allerlei trage php?
Ik heb al van alles gevonden met UNION etc, maar het blijft vaag voor me.

Van 1 set (set_ID, tabel 1) zullen meerdere regels bestaan net als van 1 hoofd artikel (parrent_artikel_ID , tabel 2).

De database opzet van de betreffende 2 tabellen:

Tabel 1:
ID
set_ID
stap_ID *
invoer_resultaat *
artikel_ID *
volgnummer *
waarde *
aantal *
afmeting *
inkoop_prijs *

Tabel 2:
ID
parrent_artikel_ID
stap_ID *
invoer_resultaat *
artikel_ID *
volgnummer *
waarde *
aantal *
afmeting *
inkoop_prijs *

Als bij alle rijen met een bepaalde set_ID in tabel 1 dus de kolommen met * exact hetzelfde zijn als een bepaald aantal rijen in tabel 2; wil ik het parrent_artikel_ID weten.

Kan iemand helpen of me de goeie richting wijzen?
 
PHP hulp

PHP hulp

11/05/2021 16:46:20
 
Thomas van den Heuvel

Thomas van den Heuvel

08/08/2018 13:09:54
Quote Anchor link
Je wilt dus een soort van productconfiguraties opslaan? Zou je hier ook inkoop_prijs bij betrekken, als de prijs verandert wordt het in wezen toch niet echt een ander product?

Misschien wat kort door de bocht, maar zou je niet van beide varianten een soort van string kunnen breien in PHP, waarbij de kolomwaarden gescheiden worden door een pipe ofzo, en je de resultaten sorteert op stap_ID (deze hoef je dan niet op te nemen in de string), vervolgens pak je de hash van die string en die vergelijk je dan met de hash van de op dezelfde manier gegenereerde string van een configuratie uit de andere tabel. Zolang je in beide tabellen data op eenzelfde wijze kunt sorteren/serialiseren (en hashen) kun je deze vergelijking uitvoeren. Zijn beide hashes gelijk zijn de configuraties gelijk.

De hashes kun je dan ergens opslaan zodat je zo'n vergelijking aan het einde van het stappenplan meteen efficiënt kunt uitvoeren.

Er zijn vast betere manieren om dit te doen, maar ik zie het bovenstaande wel werken. Vraag is alleen, welke kolommen neem je op in deze hash ter identificatie, oftewel, wanneer zijn twee configuraties "hetzelfde"?
Gewijzigd op 08/08/2018 13:11:10 door Thomas van den Heuvel
 
Ramon van Dongen

Ramon van Dongen

08/08/2018 13:30:51
Quote Anchor link
Hall Thomas,

Dat van de inkoop_prijs is een goede tip. Zal ik eens met de opdrachtgever overleggen, product blijft inderdaad hetzelfde.

Heb het nu voorlopig opgelost door een php arry te vullen met de data uit de tool en die te vergelijken met de productconfiguraties. Het werkt nu, maar ik had verwacht dat het alleen SQL ook wel zou moeten kunnen.

Een bepaalde query als
SELECT parrent_artikel_ID FROM tabel1 WHERE (SELECT kolommen FROM tabel1) = (SELECT kolommen FROM tabel2)

Maar dat is er blijkbaar niet (in MySQL)
 
Rob Doemaarwat

Rob Doemaarwat

08/08/2018 16:42:54
Quote Anchor link
Kun je niet gewoon met een WHERE [NOT] EXISTS aan de slag?
 
John D

John D

08/08/2018 20:33:50
Quote Anchor link
Ramon van Dongen op 08/08/2018 13:30:51:
SELECT parrent_artikel_ID FROM tabel1 WHERE (SELECT kolommen FROM tabel1) = (SELECT kolommen FROM tabel2)
Maar dat is er blijkbaar niet (in MySQL)
Heb je een reden om allerlei kolommen erbij te selecteren? Zoals hierboven al gezegd, een WHERE EXISTS of WHERE NOT EXISTS en dan uiteraard alleen op de key(s)??

Hele bakken gegevens ophalen en in een array gooien en met php gaan vergelijken vreet geheugen en zal op termijn vastlopen.



Toevoeging op 08/08/2018 20:34:55:

John D op 08/08/2018 20:33:50:
Ramon van Dongen op 08/08/2018 13:30:51:
SELECT parrent_artikel_ID FROM tabel1 WHERE (SELECT kolommen FROM tabel1) = (SELECT kolommen FROM tabel2)
Maar dat is er blijkbaar niet (in MySQL)
Heb je een reden om allerlei kolommen erbij te selecteren? Zoals hierboven al gezegd, een WHERE EXISTS of WHERE NOT EXISTS en dan uiteraard alleen op de key(s)??

Hele bakken gegevens ophalen en in een array gooien en met php gaan vergelijken vreet geheugen en zal op termijn vastlopen. Dit soort vragen zijn met SQL op te lossen.

Gewijzigd op 08/08/2018 20:34:18 door John D
 
Thomas van den Heuvel

Thomas van den Heuvel

08/08/2018 22:01:21
Quote Anchor link
John D op 08/08/2018 20:33:50:
Hele bakken gegevens ophalen en in een array gooien en met php gaan vergelijken vreet geheugen en zal op termijn vastlopen.

Dit doe je uiteraard (in een) eenmalig (uit te voeren dataverrijkingsscriptje), de hashes sla je op, en als je de wizard hebt doorlopen voer je een eenvoudige query uit om te kijken of de hash al voorkomt.
Gewijzigd op 08/08/2018 22:04:59 door Thomas van den Heuvel
 
John D

John D

08/08/2018 22:09:18
Quote Anchor link
Thomas van den Heuvel op 08/08/2018 22:01:21:
Dit doe je uiteraard (in een) eenmalig (uit te voeren dataverrijkingsscriptje), de hashes sla je op, en als je de wizard hebt doorlopen voer je een eenvoudige query uit om te kijken of de hash al voorkomt.
Uiteraard, uitstekende oplossing maar onder ons zijn hele volksstammen die SELECT * FROM ophalen met php van een of meer tabellen en dat in array's vergelijken om een enkel relatie record te vinden. Gewoon uit gebrek aan gedegen SQL kennis.
 
Ramon van Dongen

Ramon van Dongen

09/08/2018 09:24:28
Quote Anchor link
John D op 08/08/2018 20:33:50:
Hele bakken gegevens ophalen en in een array gooien en met php gaan vergelijken vreet geheugen en zal op termijn vastlopen. Dit soort vragen zijn met SQL op te lossen.
Helemaal mee eens dat het geheugen vreet en (op den duur) veel te langzaam zal zijn. Ik wist alleen even geen andere oplossing.


John D op 08/08/2018 20:33:50:
Heb je een reden om allerlei kolommen erbij te selecteren? Zoals hierboven al gezegd, een WHERE EXISTS of WHERE NOT EXISTS en dan uiteraard alleen op de key(s)??
Alle (genoemde) kolommen, behalve de inkoop_prijs zoals eerder aangestipt, moeten gelijk zijn. Qua echt selecteren/ophalen is alleen het parrent_artikel_ID nodig.

Het komt eigenlijk neer op het volgende qua data;

https://www.racmedia.nl/vb_opsi.png

Ik heb dus set_ID 5 en wil graag parrent_artikel_ID 617 hebben.

Hoe zou ik dit met WHERE EXISTS kunnen doen dan?
Gewijzigd op 09/08/2018 09:33:07 door Ramon van Dongen
 
John D

John D

09/08/2018 11:49:07
Quote Anchor link
Dit is met een join op te lossen maar daar loop je wel een risico dat er bij toeval ook nog ander records kunnen zijn die voldoen aan de criteria die gelijk moeten zijn dus dan komen er nog meer parrent_artikel_ID's uit die je misschien helemaal niet wil hebben of wel misschien? Hangt dus van de waarde van de attributen af.....er kan immers best nog een ander record dan 617 zijn waarvan de stap_id, de i_r, de artikel_id vergelijkbare waarde heeft.
 
Ramon van Dongen

Ramon van Dongen

09/08/2018 11:57:36
Quote Anchor link
Hallo John,

Regels (met hetzelfde set_ID) die in tabel 1 staan kunnen óf niet óf 1 keer voorkomen in tabel 2.

Bij het afsluiten van de tool na het vullen van tabel 1 wordt namelijk gekeken of alle betreffende regels in tabel 1 exact overeenkomen met regels in tabel 2.
Zo ja; het parrent_artikel_ID gebruiken.
Zo nee; een nieuw parrent_artikel_ID aanmaken en tabel 2 vullen vanuit tabel 1.

2 parrent_artikel_ID's met exact dezelfde samenstelling is dus niet mogelijk.

Het lastige in de controle is dus dat alle kolommen gelijk moeten zijn maar ook nog eens voor alle regels (met hetzelfde set_ID/parrent_artikel_ID). Als bij 9 van de 10 regels de kolommen exact hetzelfde zijn maar 1 regel anders, is het totale dus niet exact hetzelfde.

Ik ga me eens goed verdiepen in EXISTS. Blijft nog een beetje een vage syntax voor me (nooit eerder gebruikt).
Gewijzigd op 09/08/2018 12:07:44 door Ramon van Dongen
 
Thomas van den Heuvel

Thomas van den Heuvel

09/08/2018 14:08:22
Quote Anchor link
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
<?php
// https://www.phphulp.nl/php/forum/topic/2-tabellen-vergelijken/102327

// $in: associative array of records
// return: hash

function calculateProductConfigurationHash($records) {
    $columns = array('stap_ID', 'i_r', 'artikel_ID', 'volgnummer', 'waarde', 'aantal');
    $out = [];
    foreach ($records as $record) {
        foreach ($columns as $column) {
            $out[] = $record[$column];
        }
    }

    return md5(implode('|', $out));
}


$records = array(
    array('ID' => 100, 'set_ID' => '5', 'stap_ID' => '1', 'i_r' => '1', 'artikel_ID' => NULL, 'volgnummer' => NULL, 'waarde' => '3', 'aantal' => 34),
    array('ID' => 101, 'set_ID' => '5', 'stap_ID' => NULL, 'i_r' => '2', 'artikel_ID' => '14', 'volgnummer' => '1', 'waarde' => 'bla bla 1', 'aantal' => 22),
    array('ID' => 102, 'set_ID' => '5', 'stap_ID' => NULL, 'i_r' => '2', 'artikel_ID' => '20', 'volgnummer' => '2', 'waarde' => 'bla bla 2', 'aantal' => 12),
);


echo calculateProductConfigurationHash($records); // 57dc4f59463e7f016f26adf8c706969e
echo '<hr>';

$records = array(
    array('ID' => 55, 'parrent_a' => '617', 'stap_ID' => '1', 'i_r' => '1', 'artikel_ID' => NULL, 'volgnummer' => NULL, 'waarde' => '3', 'aantal' => 34),
    array('ID' => 56, 'parrent_a' => '617', 'stap_ID' => NULL, 'i_r' => '2', 'artikel_ID' => '14', 'volgnummer' => '1', 'waarde' => 'bla bla 1', 'aantal' => 22),
    array('ID' => 57, 'parrent_a' => '617', 'stap_ID' => NULL, 'i_r' => '2', 'artikel_ID' => '20', 'volgnummer' => '2', 'waarde' => 'bla bla 2', 'aantal' => 12),
);


echo calculateProductConfigurationHash($records); // 57dc4f59463e7f016f26adf8c706969e
?>

Eenmalig script voor berekening van hashes in tabel 2:
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
<?php
$res
= $db->query('SELECT ... FROM tabel2 ORDER BY ...');
$currentSet = false;
$batch = false;
while ($row = $res->fetch_assoc()) {
    if ($currentSet != $row['parrent_a']) {
        // store (previous) batch
        if ($batch !== false) {
            $hash = calculateProductConfigurationHash($batch);
            // @todo store $currentSet (parrent_a) and $hash in parent table for future reference
        }
        // reset data
        $currentSet = $row['parrent_a'];
        $batch = [];
    }

    $batch[] = $row;
}

// store last batch
if (empty($batch) === false) {
    $hash = calculateProductConfigurationHash($batch);
    // @todo store $currentSet (parrent_a) and $hash in parent table for future reference
}
?>

Vervolgens kun je aan het eind van de wizard hashes controleren met de opgeslagen hashes in de parenttabel.
 
Ramon van Dongen

Ramon van Dongen

09/08/2018 19:08:24
Quote Anchor link
Bedankt Thomas. Ik ga er eens mee aan de slag met die hashes.

Dan moet de array uiteraard wel steeds met exact dezelfde volgorde opgebouwd worden. Maar dat zal weinig problemen opleveren verwacht ik.
 
Thomas van den Heuvel

Thomas van den Heuvel

09/08/2018 19:25:04
Quote Anchor link
Ramon van Dongen op 09/08/2018 19:08:24:
Dan moet de array uiteraard wel steeds met exact dezelfde volgorde opgebouwd worden.

Da's wel belangrijk ja :). En mocht de kolommen-combinatie die een unieke groepering samenstelt ooit veranderen, pas je $columns aan en draai je het scriptje opnieuw. Meer hoef je (theoretisch :)) niet te doen omdat alles toch van die zelfde functie gebruik maakt.
 



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.