Query geeft slechte/foute resultaten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior full stack developer

Functie Als full stack developer binnen onze organisatie ga jij je bezig houden met het bouwen van de user experience van de webapplicaties. Je bent verantwoordelijk voor het vertalen van concepten, briefings en designs naar werkende functionaliteit. Hierbij zorg je ervoor dat applicaties betrouwbaar, veilig en toekomstbestendig zijn en een goede architectuur hebben en behouden. Verder denk je actief na- en mee over nieuwe ontwikkelingen en functionaliteiten om zo elke dag de klantervaring weer te verbeteren. Dit doe je natuurlijk niet alleen maar in een development team. Het team bedraagt momenteel 4 man bestaande uit 2 devops engineers en 2

Bekijk vacature »

Trainee pega developer

Wil jij een mooie stap maken in jouw carrière? Mooi! Bij De Mandemakers Groep haal je binnen 6 maanden je CSA- en CSSA-certificaten, waarna jij aan de slag kan als Pega-developer in ons IT-team. Achter de schermen zorg jij ervoor dat collega’s efficiënt werken en klanten iedere dag beter geholpen worden. Wil jij daaraan bijdragen? En jouw ICT-skills ontwikkelen? Lees dan snel verder en solliciteer vandaag nog als trainee Pega-developer. Wat ga je doen? Als trainee Pega developer leiden wij je op tot gecertificeerd software developer voor het low-code platform PegaSystems. In de training ben je verantwoordelijk voor een te

Bekijk vacature »

PHP Developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je werkt mee aan de migratie naar .NET 6; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Zij zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

Bekijk vacature »

Fullstack Webdeveloper .NET Azure Big Data SaaS

Bedrijfsomschrijving Deze klant van ons is recentelijk onderdeel geworden van een grote moederorganisatie, ze zijn dé partij als het gaat om software maken voor ambitieuze ondernemers, ze maken maatwerk software. Vanuit het fantastisch vormgegeven hightech gebouw te Rotterdam centrum werken ze met zo'n 40 medewerkers aan hoogwaardige software gericht op financiële data, betaalinformatie, maar ook backoffice software. De software wordt webbased, desktop en mobile aangeboden en er worden zeer moderne ontwikkeltechnieken toegepast. Je moet dan denken aan patroonherkenning, Big Data, Machine Learning en OCR. Als Developer, ongeacht je niveau, ga je hier te maken krijgen met de allerleukste kant van

Bekijk vacature »

No-Code Betty Blocks ontwikkelaar

Bedrijfsomschrijving Wil jij de bedrijfsprocessen van klanten revolutionair digitaliseren en optimaliseren zonder beperkt te worden door programmeertalen? Kom werken bij een snelgroeiende en professionele organisatie met een gezonde dosis humor en veel vrijheid om jezelf te ontwikkelen. Als No-Code Betty Blocks ontwikkelaar werk je vanuit ons kantoor in het hart van Nederland, je thuiswerkplek of op locatie bij de klant. We faciliteren de juiste trainingen en ondersteuning zodat je een echte Betty Blocks expert wordt. Naast het werk zijn er bij ons bijzondere events, zoals een jaarlijkse zeildag, een zomerse barbecue en een knus kerstdiner om de grillige maanden door

Bekijk vacature »

Lead developer (PHP, Symfony, DDD)

Functie Als Lead developer zorg je ervoor dat het team (bestaande uit zowel junior als ervaren developers) in staat is om de kwaliteit van de software (en code) verder te verhogen. In samenwerking met het team, de product owner en de andere lead developers zet je technische lijnen uit en bepaal je de prioriteiten per sprint. Lijkt het jou interessant om complexe problemen op te lossen en bijvoorbeeld een nieuwe applicatiestructuur in Symfony op te zetten? Dan komen wij graag met je in contact. Eisen • HBO werk- en denkniveau (ze kijken niet naar papieren, maar naar denkniveau, motivatie en

Bekijk vacature »

Junior PHP Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

Bekijk vacature »

Front-end developer (HTML, CSS, SASS, JavaScript)

Functie Momenteel zijn we voor ons Digital team op zoek naar een (medior) Front-end developer. Samen met je collega’s werk je in een Agile/Scrum omgeving aan de ontwikkeling van onze webapplicaties, websites en andere oplossingen. Je draagt bij aan een sterk ontwikkelproces waarin kwaliteit voorop staat. Hiervoor ben je niet alleen bezig met eigen code maar ook code reviews van andere collega’s. Ben jij graag op de hoogte van de nieuwste ontwikkelingen in je vakgebied en wil je deze toepassen voor diverse projecten? Dan komen wij graag met je in contact! Eisen • HBO werk- en denkniveau • Minimaal 2

Bekijk vacature »

Senior Front-End Developer

As a Senior Front-end Developer you maintain the balance between creativity and functionality for our webshop, and you coach your fellow developers. How do I become a Senior Front-End Developer at Coolblue? As a Front-end Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present this within the team. You are also proud of your work and welcome all feedback. Would you also like to become a Senior Front-End Developer at Coolblue?

Bekijk vacature »

High level C++ QT Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13486 Introductie Would you like to be involved in every aspect of software development for our exceptional products, from specification and design to testing and integration? If you're passionate about software development and eager to apply your programming skills to create customer-focused deliverables, then this is the perfect chance for you to expand your expertise. You can become a member of our Machine Control department's data-driven development team, where you'll design and build software solutions that optimize machine productivity. As a senior software design engineer, you'll participate in all phases

Bekijk vacature »

Full Stack .NET Developer

Dit ga je doen Als developer nieuwe gave features ontwikkelen; Werken met technieken als C#, Angular 12 en Javascript,; 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 team van 7 professionals ben je als Full Stack .NET Developer verantwoordelijk voor het ontwikkelen van applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Wil je van meerwaarde

Bekijk vacature »

Back-end developer

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een gemotiveerde SQL Developer/ functioneel consultant. Jij wordt verantwoordelijk voor zowel het ontwerpen en implementeren van SQL-databases als voor het in kaart brengen van de bedrijfsprocessen van een organisatie en het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Ontwerp en implementatie van SQL-databases: Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Analyse van bedrijfsprocessen: Je analyseert de bedrijfsprocessen van de organisatie om de behoeften van de klant te begrijpen en te vertalen naar

Bekijk vacature »

Junior Software Developer C# Verhuursector Verhuur

Samengevat: Wij ontwikkelen en leveren softwaresystemen voor de logistieke sector en de verhuursector. Ben jij geschikt als Junior Software Developer? Heb je ervaring met Delphi? Vaste baan: C# Software Developer Logistiek HBO €2.500 - €3.900 Deze werkgever is een software ontwikkelaar, gericht op software voor de logistieke sector. Deze werkgever heeft eigen producten ontwikkelen en leveren ook maatwerk. Ons bedrijf kent een boeiende en inspirerende werkomgeving met een open cultuur en mogelijkheden voor je verdere ontwikkeling. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om

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 »
Peter Hunt

Peter Hunt

06/12/2016 21:53:06
Quote Anchor link
Besten,

Ik ben een beginner op het gebied van SQL en tracht wat aanpassingen aan te brengen aan een bestaande site. We hebben daar 2 tabellen :

alarmeringen

1 id
2 timestamp
3 datetime
4 type
5 incident
6 message
7 zoektekst
8 city_id

labels

1 id
2 timestamp
3 messageid
4 incident
5 capcode
6 label

Nu wil ik uit beide tabellen een aantal kolommen opvragen op basis van labels.capcode, waarbij alarmeringen.id correleert met labels.messageid. Ik wil dan alle entries uit labels hebben die dezelfde messageid hebben als de opgegeven capcode, plus wat zaken uit alarmeringen. Ik heb dit in elkaar gezet, maar deze is erg traag en soms krijg ik helemaal geen resultaten (terwijl die er wel zouden moeten zijn) :

SELECT a.id, a.datetime, a.type, a.message, l.incident, l.capcode, l.label
FROM labels as l, alarmeringen as a
WHERE l.messageid = a.id AND l.messageid IN (SELECT messageid FROM labels WHERE capcode = $capcode)
ORDER BY l.id DESC
LIMIT 100

Misschien kan iemand mij wat verder op weg helpen? :)

Groeten, Peter.
- Ariën -:
Titel aangepast van 'Hulp bij Query' naar 'Query geeft slechte/foute resultaten'.
Gelieve in het vervolg duidelijke topictitels aan een topic mee te geven.
Gewijzigd op 07/12/2016 20:28:13 door - Ariën -
 
PHP hulp

PHP hulp

27/12/2024 14:10:56
 
Ben van Velzen

Ben van Velzen

06/12/2016 22:10:09
Quote Anchor link
Waarom heb je die subquery? Die is zinloos omdat je de tabel labels toch al gebruikt.

Probeer eens iets als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
SELECT a.id, a.datetime, a.type, a.message, l.incident, l.capcode, l.label    
FROM labels as l
JOIN alarmeringen as a ON l.messageid = a.id
WHERE l.capcode = '$capcode'
ORDER BY l.id DESC
LIMIT 100


Je zou er ook goed aan doen om op iets anders te sorteren dat een id, maar dat terzijde.
Vergeet ook $capcode niet te escapen.
 
Peter Hunt

Peter Hunt

06/12/2016 22:17:13
Quote Anchor link
Ben van Velzen op 06/12/2016 22:10:09:
Waarom heb je die subquery? Die is zinloos omdat je de tabel labels toch al gebruikt.

Probeer eens iets als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
SELECT a.id, a.datetime, a.type, a.message, l.incident, l.capcode, l.label    
FROM labels as l
JOIN alarmeringen as a ON l.messageid = a.id
WHERE l.capcode = '$capcode'
ORDER BY l.id DESC
LIMIT 100


Je zou er ook goed aan doen om op iets anders te sorteren dat een id, maar dat terzijde.
Vergeet ook $capcode niet te escapen.


Geprobeerd, maar dit geeft niet het gewenste resultaat :

http://monitor.p2kflex.nl/index.php?capcode=1500050

Waar je een groene "GROUP-1" ziet staan daar zouden meerdere regels onder elkaar moeten verschijnen (de "labels"). Hij pakt dus wel de 'capcode', dus het begin is er. Maar niet de andere entries die bij deze groep horen (lees: zelfde messageid)
 
Ben van Velzen

Ben van Velzen

06/12/2016 22:32:57
Quote Anchor link
Klopt je structuur dan wel? Want je label heeft een capcode, daar filter je op. Hoort de capcode dan niet bij de alarmering?
 
Peter Hunt

Peter Hunt

06/12/2016 22:38:37
Quote Anchor link
Ben van Velzen op 06/12/2016 22:32:57:
Klopt je structuur dan wel? Want je label heeft een capcode, daar filter je op. Hoort de capcode dan niet bij de alarmering?


Nouja, misschien was mijn oorspronkelijke query niet helemaal netjes, maar die gaf wel het gewenste resultaat, zij het dat het soms erg lang duurde of helemaal niet werkte (erg onbetrouwbaar dus). De site draait verder probleemloos en de structuur is (mijns inziens) op orde, maar ik heb het niet zelf geschreven, slechts overgenomen enige tijd terug. Wellicht zijn alle queries niet helemaal standaard, geen idee. Ik merk wel dat alles vrij snel gaat, alleen wat ik nu zelf probeer gaat de mist in. Dus ik ga er vanuit dat ik nu zelf de fout in ga en dat de rest redelijk goed gaat. Navigeer eens op de site (knoppen onderin). Je zult wellicht niet weten wat je qua output moet verwachten, maar het gaat in elk geval redelijk vlot. Dan zie je in elk geval hoe de groepen eruit zouden moeten zien. Elke groep heeft een eigen id/messageid en volgens mij zit dat wel snor. Ik ging wat Googelen en kwam toen uit op die subqueries, vandaar mijn vage coding :)
 
Ivo P

Ivo P

06/12/2016 22:44:13
Quote Anchor link
zoals ik het begrijp, wil je alle meldingen EN alle labels voor meldingen die in elk geval $capcode als een van de labels heeft?
 
Peter Hunt

Peter Hunt

06/12/2016 22:45:25
Quote Anchor link
Ivo P op 06/12/2016 22:44:13:
zoals ik het begrijp, wil je alle meldingen EN alle labels voor meldingen die in elk geval $capcode als een van de labels heeft?


Volgens mij heb je dat redelijk goed verwoord, ja :)
 
Ivo P

Ivo P

06/12/2016 23:06:21
Quote Anchor link
dan mis ik denk ik een tabel

ik verwacht een tabel Meldinge
Een tabel Labels

en een tabel die de meldingen en de labels aan elkaar koppelt.

Want kennelijk sla je nu voor elke melding een compleet label op. Stel het label is "voorbeeld" en je wilt dat aanpassen naar "Voorbeeld", dan moet je nu dus alle entry's af?
 
Ben van Velzen

Ben van Velzen

06/12/2016 23:59:04
Quote Anchor link
Zoiets dan?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
SELECT a.id, a.datetime, a.type, a.message, l2.incident, l2.capcode, l2.label    
FROM labels as l1
JOIN alarmeringen as a ON l1.messageid = a.id
JOIN labels as l2 ON l2.messageid = a.id
WHERE l1.capcode = '$capcode'
ORDER BY l1.id DESC
LIMIT 100
 
Peter Hunt

Peter Hunt

07/12/2016 00:25:13
Quote Anchor link
Ben,

Deze lijkt exact te doen wat ik wil! Ik test nog even verder, maar dat wordt morgen :)

Bedankt zo ver!!

Groeten, Peter.
Gewijzigd op 07/12/2016 00:25:53 door Peter Hunt
 
Ivo P

Ivo P

07/12/2016 09:40:39
Quote Anchor link
Volgens mij had je datamodel er meer uit moeten zien als

tabel alarmeringen
1 id
2 timestamp
3 datetime
4 type
5 incident
6 message
7 zoektekst
8 city_id

tabel labels
1 id
2 capcode
3 label

koppeltabel labels_alarmeringen
1 alarmering_id
2 label_id

de query zou dan worden
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
SELECT a.id, a.datetime, a.`type`, a.incident, l.label, l.capcode

FROM alarmeringen a
JOIN labels_alarmeringen la ON la.alarmering_id = a.id
JOIN labels l on l.id = la.label_id

GROUP BY a.id, a.datetime, a.`type`, a.incident, l.label, l.capcode
HAVING SUM(l.capcode = '$capcode') > 0
 
Peter Hunt

Peter Hunt

07/12/2016 10:18:00
Quote Anchor link
Ivo P op 07/12/2016 09:40:39:
Volgens mij had je datamodel er meer uit moeten zien als


Dat had misschien mooier geweest, maar ik heb dit dus niet zelf opgezet, ik ben het ook maar als een bestaand project overgenomen :) Ik zou kunnen overwegen om de structuur aan te passen maar ik denk dat daar iets meer bij komt kijken dan een enkele query ;)

Bedankt in elk geval voor je feedback!
 
Thomas van den Heuvel

Thomas van den Heuvel

07/12/2016 14:24:15
Quote Anchor link
Indien de queries traag zijn en de kolommen zich hiervoor lenen dan zou je kunnen overwegen om indexen aan te brengen op de kolom(men) waar je op zoekt. Je zou ook eens kunnen kijken naar de performance door eens een EXPLAIN <je query hier> uit te voeren (je gebruikt MySQL?) en te kijken hoe de tabellen aan elkaar geknoopt worden. Idealiter gaat dit enkel via indexen.

En wat @Ivo zegt. Wanneer je met een administratieef systeem werkt is het zeer belangrijk dat je database goed in elkaar zit en ook goed presteert.
 
Peter Hunt

Peter Hunt

07/12/2016 15:18:15
Quote Anchor link
Okee, die EXPLAIN kende ik nog niet...

https://s30.postimg.org/80dx4hbgx/Region.png

Kan ik hier iets mee?

Toevoeging op 07/12/2016 23:39:48:

Ik wil nog even iets verder, als het kan. Tevens wil ik wat meer uitleg geven over hoe/wat. Een jaar geleden is een vriend van mij vrij plotseling overleden. Hij draaide een zogenaamde P2000-website waarop de alarmeringen van de hulpdiensten te zien zijn (deze zijn vrij te ontvangen met simpele middelen). Samen met nog 2 personen hebben wij besloten de site draaiend te houden, maar het is, zelfs een jaar na dato, soms nog steeds lastig om door andermans code heen te worstelen, zeker als je geen expert bent. Voorgaande query was een soort aanvulling. Er zijn echter ook bestaande queries waar ik af en toe wat vraagtekens bij plaats. De website kent enerzijds vrij standaard, transparante weergaven, maar ook hele persoonlijke, met extra instellingen met bijvoorbeeld excludes en includes. Dingen die je juist/wel niet wilt zien in veel mogelijk combinaties. Laat ik vooropstellen, het werkt. Dat betekent uiteraard niet dat de coding altijd optimaal is, maar de gebruiker merkt daar niet veel van. Als er al grove fouten in zitten, dan heb ik een variabele wellicht niet goed uitgeschreven...

Zo kom ik ook deze query tegen, ik heb hem een beetje uit moeten schrijven omdat er nogal wat variabelen in zitten, maar enerzijds vraag ik me af of deze optimaal geschreven is, anderzijds wil ik hier ook de eerder door Ben voorgestelde aanvulling in verwerken, in het vetgedrukte gedeelte :

SELECT a.id, a.datetime, a.message, a.zoektekst, a.type, a.locked, l.incident, l.capcode, l.msgcolor, l.label
FROM alarmeringen AS a, labels AS l
WHERE a.id > 1000 AND l.messageid = a.id AND (l.incregio = 1 OR l.capcode='1234567') AND MATCH(a.zoektekst) AGAINST('brand') OR a.city_id='15025' AND NOT MATCH(a.zoektekst) AGAINST('test')

EDIT: Het kan zijn dat een aantal kolommen lijkt te ontbreken tov mijn eerdere posting. Dat komt omdat ik eerder een aantal kolommen heb weggelaten omdat die voor de betreffende query niet van toepassing waren. Ze zijn echter -uiteraard- wel aanwezig.
Gewijzigd op 07/12/2016 23:40:57 door Peter Hunt
 



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.