Left JOIN query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Traineeship IT regio Amsterdam/Utrecht

Wat ga je doen? Het traineeship begint met een fulltime maand cursussen en praktijkdagen, waarin je de basis van het IT-vak leert op de Shared Servicedesk (SSD). Daarnaast ga je meteen aan de slag voor je eerste certificering! (ITILv4). Je start in een groep met 4 tot 10 deelnemers, waarmee jij gedurende die maand optrekt en je kennis kunt delen. Na het voltooien van de eerste maand ga je direct voor een langere periode aan de slag bij één van onze klanten of blijf je intern bij ons op de Shared Servicedesk. Je bent het eerste aanspreekpunt van de eindgebruikers

Bekijk vacature »

Senior front-end developer (React)

Functie Momenteel zijn ze op zoek naar een ervaren front-end developer. Als senior werk je nauw samen met 5 collega developers. Een klein scrum team dus, met korte lijnen waardoor jouw ideeën snel tot uitvoering gebracht kunnen worden. De huidige applicaties worden veelal ontwikkeld met o.a. React, Redux, TypeScript. Ze zijn echt op zoek naar een kartrekker in het team. Naast het meedenken over, opzetten en uitvoeren van bijvoorbeeld de architectuur of toepassing van nieuwe technieken krijg je ook veel tijd om de meer junior (front-end) developers te begeleiden. Hierin nemen ze graag de tijd om mensen de ruimte te

Bekijk vacature »

Back end Node.js developer

Functie Het ontwikkelteam bestaat momenteel uit 5 (back-end) Developers, 2 systeembeheerders, 1 DevOps engineer, 1 Tech Lead en 2 Scrum Masters. Samen wordt er doorontwikkeld aan twee SaaS-platformen die in een hoog tempo doorontwikkeld moeten worden. Omdat innovatie een belangrijk speerpunt binnen de organisatie is, wordt er ook continu naar snellere en slimmere oplossingen te bedenken en realiseren. Als Back-end Developer hou jij je dagelijks bezig met vraagstukken zoals: API-development, high volume datastromen, het ontwikkelen van Bots aan de hand van A.I. Daarnaast denk en werk jij mee aan de onlineapplicaties voor klanten. Er wordt zelfstandig en in teamverband gewerkt

Bekijk vacature »

.NET Developer

Functie omschrijving Jij gaat in de functie van Software Developer werken met C# en .NET framework. Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met back-end development. Verder staat dit

Bekijk vacature »

.NET developer

Functie Heb jij veel kennis van ASP.NET Webforms en wil jij juist de overstap maken naar ASP.NET Core? Wij zijn per direct op zoek naar een ervaren .NET Webdeveloper die met ons samen ons platform wilt herschrijven van ASP.NET Webforms naar ASP.NET Core. Voor jou de unieke kans om met ons samen te innoveren en kennis op te doen van de nieuwste technieken binnen de Microsoft Stack. Wij hebben een development team met 10 IT specialisten bestaande uit onder andere 4 backend .NET developers en twee front-end developers. Wij zijn continu bezig om ons als team en bedrijf te blijven

Bekijk vacature »

Junior Software Developer (HBO / WO)

Functie omschrijving Voor een leuke opdrachtgever zijn wij op zoek naar een Junior Software Developer! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Dan hebben wij bij Jelling IT Professionals de perfecte opdrachtgever in de omgeving van Hoofddorp. Binnen deze functie vervul je een onsite learning programma waarbij je aan de slag gaat met PHP en Laravel. Hierbij ben je voornamelijk werkzaam op verschillende klantlocaties en is het jouw taak om hun wensen en eisen

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 »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Boskoop dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat technische klussen uitvoeren op locatie bij klanten.Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat software en webapplicaties ontwikkelen met behulp van de talen

Bekijk vacature »

Applicatieontwikkelaar Java EE

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving De afdeling IV –

Bekijk vacature »

PHP Back-end Developer

Vacature details Vakgebied: Software/IT Opleiding: Starter Werklocatie: Nijmegen Vacature ID: 13633 Introductie OUr client develop websites, webshops, and digital environments that are used by many visitors daily. They are seeking an experienced PHP-Developer Back-end to join the team. If you're looking for a position where you can tackle challenging, innovative, and multidisciplinary ICT projects and make a difference, this vacancy might be for you! Functieomschrijving As a PHP developer, you'll develop websites and digital environments used by many visitors daily. You'll work as a back-end developer and want to continuously develop in this field. You can work independently and efficiently,

Bekijk vacature »

Front end developer

Functie Het team bestaat uit User Experience designers, Data Scientists en Software Engineers met passie voor hun vak. De consultants en ontwikkelaars werken volgens de Design Thinking methode waarbij de eerste stappen van ontwerp en ontwikkeling zullen samenkomen in een proof of concept. Nadat is vastgesteld dat de oplossing voldoet aan de belangrijkste behoeftes worden producten of services gevalideerd door middel van korte iteraties. Hiermee zorgen ze ervoor dat het werk voldoet aan de technische vereisten en gebruikersbehoefte. Door het inzetten van de nieuwste technologieën die toekomstbestendig zijn weten ze klanten omver te blazen. Ook geven en organiseren ze veel

Bekijk vacature »

Infrastructure Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12945 Introductie Our client is one of the most innovative companies within the Netherlands. Currently we are looking for an Infrastructure Platform Engineer. Within this role you will be developing the infrastructure. Functieomschrijving Within this role you are responsible in the development of our distributed data and compute platform infrastructure. You will design, develop and implement new features and fixes. Next to this you will integrate and configurate other packages that supports the development of tuning applications within the organisation. You will support customer sites remotely. Design and implement the

Bekijk vacature »

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Social Media Specialist

Social Media Specialist locatie: Rotterdam (Zuid Holland) Wij zoeken op korte termijn een nieuwe collega, een social media specialist/ adviseur sociale media (24 uur), voor ons sprankelende team Communicatie van CJG Rijnmond. Onze focus ligt op het informeren en binden van onze in- en externe klanten en stakeholders en het versterken van onze naamsbekendheid en zichtbaarheid. Dat doen we in nauwe samenwerking met elkaar. Over de functie Ons team bestaat uit 7 communicatieprofessionals met ieder een eigen expertise. Als lid van het online team ben je verantwoordelijk voor het ontwikkelen, uitvoeren en analyseren van onze socialemediastrategie. Ook stel je campagnes

Bekijk vacature »

C# .NET Ontwikkelaar ASP.NET

Samengevat: Deze werkgever is een inkooporganisatie. Ben jij een ervaren .Net ontwikkelaar? Heb je ervaring met .Net en C#? Vaste baan: C# .NET Developer .Net MBO HBO €3.100 - €4.300 Onze missie is: “Een essentiële bijdrage leveren aan het verlagen van de integrale kostprijs van de aangesloten groothandels, middels het bundelen van inkoopvolume en het creëren van synergie met en tussen de groothandels en leveranciers, met scherpe inkoopprijzen, goede handelscondities en gerichte dienstverlening als resultaat” Zij werken voor MKB klanten. Deze werkgever heeft veel verschillende projecten. Houd jij van afwisseling? Dan zit je bij hun goed! De branche van dit

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

21/11/2024 20:24:37
 
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.