Left JOIN query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sportieve Junior C#.NET developer gezocht!

Bedrijfsomschrijving Wil jij werken aan webapplicaties bij de marktleider binnen de branche? Voor een klant in de buurt van Oosterhout ben ik op zoek naar een Fullstack .NET developer. Dit bedrijf bestaat bijna 10 jaar en is inmiddels uitgegroeid tot marktleider in Nederland en heeft tevens kantoren in meerdere landen in Europa. Dit bedrijf bouwt webapplicaties waarbij internationaal enkele honderdduizenden deelnemers, soms tegelijk, een beroep doen op de realtime data uit deze applicaties. Dit brengt erg veel technische uitdaging met zich mee. Ze ontwikkelen nieuwe applicaties maar ook bestaande applicaties worden uitgebreid en verbeterd. Hier kan jij een onderdeel van

Bekijk vacature »

Cloud Engineer

Ben jij een ervaren Cloud Engineer die complexe omgevingen kan overzien en wil je graag in vaste dienst werken bij een professioneel en kleinschalig bedrijf waar je een belangrijke rol kan spelen? Wij, IntelliMagic in Leiden, ontwikkelen specialistische IT monitoring software die we als SaaS oplossing verkopen aan grote bedrijven in Europa en de VS. We zijn een Nederlands bedrijf met een goede sfeer en met grote waardering voor de persoonlijke inbreng en kwaliteiten van onze medewerkers. Wij zoeken een ervaren Cloud Engineer met academisch denkniveau die verantwoordelijk wordt voor het beheer van de cloud infrastructuur voor onze Europese klanten.

Bekijk vacature »

SAP ABAP Developer

Dit ga je doen Software ontwikkeling met behulp van o.a. ABAP, Sapscript en Smartforms Maatwerk development op SAP ECC 6.0, in de toekomst S/4 HANA Samenwerken met Business Analisten die functioneel en technisch ontwerpen aanleveren Testen van opgeleverde software Bugfixing Ondersteuning van eindgebruikers Hier ga je werken Onze klant, een internationaal gevestigd productiebedrijf dat mensen blij maakt, is ter versterking op zoek naar een ABAP Developer voor hun SAP team. Het team van 4 mensen verzorgt de ontwikkeling van maatwerk voor de SAP omgeving waar wordt gewerkt met modules SD, FI/CO, PM en MM. Momenteel draait het bedrijf op SAP

Bekijk vacature »

3D BIM Add-on Developer

As a 3D BIM add- on developer at KUBUS, you will develop add-ons (called BCF- Managers) to the leading building information modeling (BIM) programs Revit, Navisworks, Archicad, AutoCAD and Tekla Structures. BCF Managers enable data transfer between BIM software and BIMcollab. You will work on both the front- and the back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual

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 »

Medior/Senior Front-end Developers gezocht (Utrech

Functie Het team bestaat uit 10+ gespecialiseerde (veel senior) front-end ontwikkelaars en ontwerpers die werken aan projecten voor klanten van verschillende groottes (kan twee jaar bezig zijn met 1 klant). Je helpt klanten met ingewikkelde front-end vraagstukken, hierbij kun je denken aan: UX/UI design, CI/CD, architectuur en integratie met back-end systemen. De werkzaamheden verricht je op locatie bij de klant, dit is vaak in de Randstad. De organisatiestructuur is plat en er heerst een informele sfeer, zo kun je met vragen dus terecht bij de directie. Er wordt veel nadruk gelegd op het bevorderen van persoonlijke ontwikkeling door middel van

Bekijk vacature »

C# .NET Developer

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een klein team van professionals ben je als C# .NET Developer verantwoordelijk voor het ontwikkelen van één van de applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je

Bekijk vacature »

Software developer (PHP) - Utrecht centrum

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

Bekijk vacature »

C# .NET Backend Developer HBO Javascript

Samengevat: Deze werkgever is een professionele speler op gebied van IT en E-Commerce. Wil jij werken voor een e-commerce platform? Heb je ervaring met C#, Javascript en Scrum? Vaste baan: C# .NET Developer Backend E-Commerce 3.400 - 4.500 Backend Developer Wij ontwikkelen software voor E-Commerce toepassingen. Ons eigen Content Management systeem biedt een integrale oplossing met diverse ERP software. Onze systemen zijn vaak complex en omvangrijk en draaien bij grote organisaties. Maar ook kleine ondernemingen hebben steeds vaker behoefte aan een vlekkeloos werkende E-Commerce oplossing. Zij bieden een uitdagende werkomgeving met gezellige collega's. Je krijgt veel vrijheid en er is

Bekijk vacature »

Senior front end developer Digital Agency Amsterda

Functie Wij werken in multidisciplinaire teams aan verschillende projecten, echter blijf je niet gebonden aan 1 team. Dit houdt in dat wij verschillende specialisten in dienst hebben en deze door middel van een roulatiesysteem in multidisciplinaire teams laten werken. Het team bestaat vaak uit Frontend developer(s), Backend Developer(s), Designer(s), Tester(s) en Mobile Developer(s). Deze teams worden afgewisseld waardoor jij de mogelijkheid krijgt om met iedereen een keer samen te werken. Als Frontend Developer ben jij ónze Specialist op dit gebied. Jij werkt mee aan verschillende projecten voor verschillende klanten. Denk bijvoorbeeld aan klanten, zoals’; BAM, IDFA en Ultimaker. Hierbij zorg

Bekijk vacature »

Mendix Developer

For our client in Amsterdam, we are looking for a Senior Mendix Developer. Company description Our client is an IT Consultancy company who’s been active for 10 years now. With their ambitious team, they are working with different clients in order to help them with analyzing their data and giving advice to them, regarding how they can use their data in the smartest ways, or to make sure that their mobile or web applications are working efficiently. As you get a glimpse of various industries, it is guaranteed that no day will be the same. Job description As a Mendix

Bekijk vacature »

PHP Web Developer

Functie omschrijving Voor een klein softwarebedrijf in de omgeving Roosendaal, zijn wij op zoek naar een PHP web developer met een aantal jaar werkervaring. Wil jij graag werken aan in-house software projecten voor diverse klanten? Voel jij je prettige in een klein team developers, waar jouw inbreng enorm gewaardeerd wordt? Lees dan snel verder! Jouw werkzaamheden zien er als volgt uit: Je wordt verantwoordelijk voor de ontwikkeling van diverse applicaties. Dit kan de ene keer een online platform voor aanbiedingen zijn, en de andere keer een software pakket dat gebruikt wordt om interne processen te automatiseren. Het zijn stuk voor

Bekijk vacature »

Front-end developer (Angular)

Functie Het team bestaat uit een architect, fullstack developers, app developers, de product owner en projectmanager. Eenieder draagt vanuit zijn discipline bij aan een complete oplossing voor de klant. Uiteraard zul je hierin nauw samenwerken met je collega’s. Jij wordt verantwoordelijk voor de front-end implementatie en fungeert als lead op dit gebied binnen het team. Je kunt helder formuleren, ideeën uitdragen en overbrengen aan je collega’s. Qua technische stack is het vooral van belang dat je ervaren bent met Angular, HTML5, CSS en TypeScript. Verder is ervaring in NgRx, Bootstrap, BEM en Cypress een pré, evenals affiniteit met UX/UI Design!

Bekijk vacature »

.Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net 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. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

Medior front-end developer gezocht (€3.300 -

Functie Wat ga je doen? Jij als front-end developer gaat werken binnen de teams van/voor onze klant. Je werkt in een team met starters en ervaren ontwikkelaars met allemaal 1 overeenkomst; passie voor het vak. Maak je een fout? Geen probleem, leer ervan en ga dan weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en jezelf dus snel ontwikkelen. Wat hebben we jou te bieden? • Uitdagende projecten bij mooie klanten (bij jou in de buurt, of binnenkort intern vanuit ons kantoor!) • Een jonge organisatie met talentvolle collega’s • Veel ruimte voor

Bekijk vacature »

Pagina: 1 2 volgende »

- Roland -

- Roland -

20/01/2012 13:54:20
Quote Anchor link
In/bij mijn klanten overzichts lijst wou ik ook, als extra het laatste factuur bedrag en facdatum van die klant kunnen zien.

Ik wil iig alle klanten op deze pagina, dus ik dacht Left Join
maar dan wil/ hoef ik alleen de laatste factuur van die klant te zien. Klanten die nog geen factuur hebben moeten echter ook gewoon in de lijst staan.

SELECT k.id, k.name, k.adres, k.tel, f.amount, f.paid, f.datum
FROM klanten as k
LEFT JOIN facturen as f
ON k.id=f.user_id

geeft alle klanten met al hun facturen

Om van elke klant alleen laatste factuur te zien dacht ik aan GROUP klant
dat werkt, maar ik krijg dan de oudste factuur. De order by f.datum werkt niet!

Heeft iemand een oplossing ? Of kan dit niet in 1 query ?

SELECT k.id, k.name, k.adres, k.tel, f.amount, f.paid, f.datum
FROM klanten as k
LEFT JOIN facturen as f
ON k.id=f.user_id
GROUP BY k.id
ORDER BY f.datum ASC
Gewijzigd op 20/01/2012 14:05:42 door - Roland -
 
PHP hulp

PHP hulp

26/05/2026 12:37:34
 
Erwin H

Erwin H

20/01/2012 13:59:52
Quote Anchor link
Waar komt i vandaan in je query? Ik zie "klanten as k" en "facturen as f", maar i is volgens mij niet gedefinieerd.
Gewijzigd op 20/01/2012 14:00:36 door Erwin H
 
- Roland -

- Roland -

20/01/2012 14:03:25
Quote Anchor link
Sorry verkeer overgenomen (het is niet hele query)
Aangepast: k (klanten)
 
Erik Rijk

Erik Rijk

20/01/2012 14:07:17
Quote Anchor link
Je kan het niet in 1 query terug krijgen. Of je moet met GROUP_CONCAT gaan werken.. Maar in dit geval is dat niet de bedoeling. Mocht je niet weten hoe het werkt, is het altijd interessant om op te zoeken :)

Haal de facturen op, op basis van de klant_id via een losse query. Beste oplossing.
 
Erwin H

Erwin H

20/01/2012 14:11:05
Quote Anchor link
Ok, duidelijk.

Een GROUP BY zonder een group function (MAX(), MIN(), SUM(), COUNT() etc) werkt niet. Althans, niet goed. Als je dus alleen de nieuwste zou willen selecteren, zal je met een MAX(f.datum) moeten werken. Je kan dus dit proberen, maar ik weet niet zeker of het gaat werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT k.id, k.name, k.adres, k.tel, f.amount, f.paid, MAX(f.datum)
FROM klanten as k
LEFT JOIN facturen as f
ON k.id=f.user_id
GROUP BY k.id

Ik vraag me namelijk af of dan nog wel de juiste facturen worden geselecteerd. Ik vrees eerlijk gezegd van niet.
 
Lendl Verschoor

Lendl Verschoor

20/01/2012 14:18:59
Quote Anchor link
getest en zo doet ie het bij mij.
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
SELECT
  k.id,
  k.naam,
  k.adres,
  f.amount,
  f.paid
FROM
  klanten as k,
  (
    SELECT
      amount,
      paid,
      user_id
    FROM
      factuur
     ORDER BY datum DESC
   ) as f
WHERE
  f.user_id = k.id
GROUP BY k.id
Gewijzigd op 20/01/2012 14:20:31 door Lendl Verschoor
 
Erik Rijk

Erik Rijk

20/01/2012 14:24:12
Quote Anchor link
Nogal overkill voor zoiets simpels eerlijk gezegd.
 
- Roland -

- Roland -

20/01/2012 14:24:19
Quote Anchor link
@ Erwin JaZeker dat werkt ! ( tot nu toe ? )

@ Erik GROUP_CONCAT kan zeker sosm interessant zijn (nog nooit gebruikt !)
 
Jelle -

Jelle -

20/01/2012 14:29:27
Quote Anchor link
@lendl

Volgens mij gaat mysql heel slecht om met een subquery
Dat hij die query elke keer weer afvoert per rij in klanten.

Dus op een grote tabel is hij rete lang bezig
 
- Roland -

- Roland -

20/01/2012 14:36:49
Quote Anchor link
@lendl

Ja, die is ook goed, althans hij geeft het goed maar klanten zonder factuur komen er natuurlijk NIET in voor, toch bedankt !
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

20/01/2012 15:37:42
Quote Anchor link
- Roland - op 20/01/2012 13:54:20:
Om van elke klant alleen laatste factuur te zien dacht ik aan GROUP klant
dat werkt, maar ik krijg dan de oudste factuur. De order by f.datum werkt niet!

SELECT k.id, k.name, k.adres, k.tel, f.amount, f.paid, f.datum
FROM klanten as k
LEFT JOIN facturen as f
ON k.id=f.user_id
GROUP BY k.id
ORDER BY f.datum ASC

Er staat ook ASC in de ORDER moet dat geen DESC zijn.
Een andere oplossing is om een index op de factuur tabel te zetten voor de datum kolom
 
Kris Peeters

Kris Peeters

20/01/2012 17:37:14
Quote Anchor link
Erik Rijk op 20/01/2012 14:24:12:
Nogal overkill voor zoiets simpels eerlijk gezegd.


Heeft daar iemand documentatie over?
Of werken met subquery's veel vertraagt?

Want het ding is wel, vaak kan je (heel) lastige query's gemakkelijk oplossen op deze manier.

Dingen zoals:
In een voetbal-klassement random drie ploegen uit de top 10 tonen
(waarschijnlijk zijn er betere voorbeelden)
Gewijzigd op 20/01/2012 17:38:10 door Kris Peeters
 
Noppes Homeland

Noppes Homeland

20/01/2012 18:52:36
Quote Anchor link
Alle queries die hier geschreven staan met een GROUP BY dienen een foutmelding op te leveren!!!!

Als dat niet het geval is dan zit je naar een resultaat te kijken wat in 99% van de gevallen niet zal en kan kloppen.
 
Aad B

Aad B

20/01/2012 22:00:05
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
SELECT k.id,
       k.name,
       k.adres,
       k.tel,
       f.amount,
       f.paid,
       f.datum
FROM klanten k,
     facturen f
WHERE k.id=f.user_id
AND f.datum = (SELECT max(x.datum)
               FROM facturen x
               WHERE x.id=f.user_id)
Om performance te garanderen moet er wel een index staan op user_id als dit geen primairy key is. Er wordt dan een index-range scan uitgevoerd om de max datum te kunnen vinden. Dat moet een bruikbare performance opleveren tenzij je per klant duizenden facturen hebt. In dat geval moet je een andere oplossing zoeken.
Gewijzigd op 20/01/2012 22:09:02 door Aad B
 
Erwin H

Erwin H

21/01/2012 01:29:37
Quote Anchor link
Noppes Homeland op 20/01/2012 18:52:36:
Alle queries die hier geschreven staan met een GROUP BY dienen een foutmelding op te leveren!!!!

Als dat niet het geval is dan zit je naar een resultaat te kijken wat in 99% van de gevallen niet zal en kan kloppen.

Noppes, doen iedereen hier eens een plezier en leg je statements uit. Dat "alle voorbeelden een foutmelding op moeten leveren" heeft natuurlijk niemand iets aan. Waarom dat het geval zou moeten zijn en wat dan beter kan wel. Ook ik wil graag leren, maar van jouw antwoorden heb ik nog nooit iets geleerd...

Kom, doe eens moeite, doe ons eens een plezier en leg je woorden eens uit. Dan verdien je ook mijn respect.
 
Gerben G

Gerben G

21/01/2012 17:13:56
Quote Anchor link
SELECT
k.id,
k.naam,
MAX(f.factuurnr),
MAX(f.factuurdatum)
FROM
klanten k
INNER JOIN facturen f ON k.id = f.user_id
GROUP BY f.user_id

Denk dat deze query de juiste resultaten geeft.
 
Noppes Homeland

Noppes Homeland

21/01/2012 17:26:30
Quote Anchor link
@Gerben G, ook jouw query moet tot een fout leiden. En je doet ook nog eens een aanname dat de max van factuurnummer ook de max van factuurdatum is of visa versa.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
datum          factuurnr           user_id
20-10-2011     APO-123456789       1
20-02-2011     ZIP-123456789       1

dan krijg jij toch mooi een combi van 20-10-2011 / ZIP-123456789
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

21/01/2012 18:13:30
Quote Anchor link
@Gerben, je moet wel de TS zijn vraag goed lezen; hij wil dat ook de klanten die geen factuur hebben gehad worden weergegeven dus dat gaat nooit werken met een INNER JOIN.

@Noppes, waarom zou een GROUP BY een foutmelding weergeven? Ik ben daar toch wel heeeeeeeeeeel nieuwsgierig naar!.
 
Kees Schepers

kees Schepers

21/01/2012 18:18:36
Quote Anchor link
Aad B op 20/01/2012 22:00:05:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT k.id,
       k.name,
       k.adres,
       k.tel,
       f.amount,
       f.paid,
       f.datum
FROM klanten k,
     facturen f
WHERE k.id=f.user_id
AND f.datum = (SELECT max(x.datum)
               FROM facturen x
               WHERE x.id=f.user_id)
Om performance te garanderen moet er wel een index staan op user_id als dit geen primairy key is. Er wordt dan een index-range scan uitgevoerd om de max datum te kunnen vinden. Dat moet een bruikbare performance opleveren tenzij je per klant duizenden facturen hebt. In dat geval moet je een andere oplossing zoeken.


En eventueel nog een index op f.datum. Eigenlijk een index op f.user_id en f.datum, dat is het beste.

Subqueries hoeven niet langzaam te zijn, ik gebruik ze ook nog weleens. Maar je moet er wel mee oppassen en vaak kan het ook met een join oid.

Ger van Steenderen op 21/01/2012 18:13:30:
@Noppes, waarom zou een GROUP BY een foutmelding weergeven? Ik ben daar toch wel heeeeeeeeeeel nieuwsgierig naar!.


Ik vermoed omdat je 'officieel' alle scalar values moet grouperen als je group by gebruikt. Alleen MySQL pikt dit ook.
Gewijzigd op 21/01/2012 18:20:43 door kees Schepers
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

21/01/2012 18:58:30
Quote Anchor link
Daar heb je gelijk in maar in dit geval is het klantid een vaste waarde
 
Gerben G

Gerben G

21/01/2012 19:05:45
Quote Anchor link
@Noppes
Mijn aanname dat het hoogste factuurnummer ook bij de hoogste datum hoort heeft er mee te maken dat dit van de belastingdienst moet.

Ben trouwens erg benieuwd naar wat voor fout mijn query moet leiden

Als je ook de klanten die geen factuur hebben gekregen kun je dus gewoon er een left join van maken:
SELECT k.id,
k.name,
k.adres,
k.tel,
f.amount,
f.paid,
MAX(f.factuurnr),
MAX(f.datum)
FROM
klanten k
LEFT JOIN facturen f ON k.id = f.user_id
GROUP BY f.user_id
Gewijzigd op 21/01/2012 19:06:54 door Gerben G
 

Pagina: 1 2 volgende »



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.