Query geeft slechte/foute resultaten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Magento2 Developer

Functie Ben jij een ontwikkelaar en wil jij een volgende stap zetten en als teamlead aan de slag? Lees dan snel verder! Voor een gewilde opdrachtgever in omgeving Delft zijn wij op zoek naar een programmeur die als meewerkend voorman aan de slag wilt gaan. Een developer die een team van twee man aan zal sturen. Jouw werkzaamheden zullen er als volgt uitzien; Ontwikkelen en ontwerpen van API's; Maatwerkoplossingen; Databeveiliging; Optimalisatie webshops; Ontwikkelen technische implementaties voor verbetering database; Aanspreekpunt voor de organisatie en verantwoordelijk voor de aansturing van externe developers. Zoek je veel uitdaging en veelzijdigheid in je werk dan

Bekijk vacature »

PHP Software Developer

Functie omschrijving Op zoek naar een nieuwe uitdaging binnen PHP? Lees dan snel verder! Wij zoeken een ervaren PHP developer die binnen een organisatie gaat functioneren als verlengstuk van de klant. Wij zoeken voor deze iemand die technisch complexe zaken met enthousiasme en plezier aanvliegt. Verder moet je instaat zijn om je tijd goed te managen omdat je aan meerdere projecten tegelijkertijd werkt. Je werkt met de nieuwste technieken en tijdens deze uitdaging werk je veel samen met de front-end developers van deze organisatie. Wij zoeken iemand die zichzelf graag uitdaagt en altijd de beste wilt zijn. Bedrijfsprofiel Waar ga

Bekijk vacature »

Senior Fullstack developer wanted! (C#, Java, Angu

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

Bekijk vacature »

Front-end developer Consultancy in teamverband wer

Functie Het team bestaat uit User Experience designers, Data Scientists en Software Engineers. Momenteel zijn ze op zoek naar een ervaren Front-end of Fullstack developer die samen met de consultants aan de slag gaat om de business requirements te vertalen naar technische oplossingen. Los van het finetunen van extenties, help je bij het configureren van bijvoorbeeld een mobiel bankieren app. Hierin ben je van A tot Z betrokken en zie je bijvoorbeeld ook toe op de uitvoering van testen. Je expertise wordt optimaal benut en je krijgt verschillende kansen om deze uit te breiden door met verschillende innovatieve technologieën aan

Bekijk vacature »

Database developer - SQL

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je sluit aan bij meetings en brengt het gehele logistieke proces in kaart. Vervolgens ga je als lead developer aan de slag om de klus te klaren. Je stuurt het junior developer team en helpt, zo nodig,

Bekijk vacature »

Product Developer (M/F), Fulltime 40 h/week

A global Plantbased revolution – that is our dream. Maximising the protein transition – that is our mission. Producing and developing sustainable and delicious products – that is what we do. Ojah is a fast growing company with a mission and has the ambition to be the world leader in its field. To support this growth we are hiring new colleagues. People that would like to make a difference and dare to dream big. With currently a 150 colleagues proudly working on our exceptional products. Working in a dynamic surrounding that runs full speed ahead. We need you! Product Developer

Bekijk vacature »

VB.NET developer

Functie Het development team waar jij in terecht komt bestaat uit twee ervaren software developers. De directeur/eigenaar is tevens één van deze developers. Jij werkt direct samen met jouw werkgever en kan dan ook veel kennis en ervaring bij dit bedrijf op doen. Als team zijn jullie verantwoordelijk voor de kantoorapplicatie die deze organisatie aanbied in een niche markt. Het team is op dit moment actief bezig met een migratie waarbij het eindstation eindigt in een C# .NET omgeving. Echter is een deel van de software al geschreven in C# .NET. Hierbij is gebruik gemaakt van C# .NET, CSS, HTML,

Bekijk vacature »

Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12946 Introductie We are looking for a Java Developer! Our client is one of the most innovation companies located within the Netherlands. We provide high quality software in a high-tech and challenging market. Functieomschrijving The department is specialized in creating and developing high quality software for manufacturing automation in a high tech environment. We strive to provide our clients with high quality software and deliver state of the art solutions in a variety of ways. Creating software infrastructure using Java SE / EE Create applications to fine tune manufacturing processes

Bekijk vacature »

Digital Agency is looking for PHP developers!

Functie The team currently has 20 colleagues, consisting of developers (front and backend) and the operations team, which also includes management and two scrum masters. They are looking for a PHP developer who is able to work independently. You will work in one of the three scrum teams and start working on a project for the customer. The interesting thing about this is that you do have variety in terms of work, but at the same time continuously work for existing customers. This also gives you the opportunity to really go into depth and develop innovative technical solutions. In terms

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor onze opdrachtgever in omgeving Rotterdam zijn wij opzoek naar een software programmeur die goed kan schrijven in de talen C of C++ en die het leuk vind om te werken met Linux! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Bedrijfsprofiel Dit bedrijf wil de klanten een volledige oplossing kunnen bieden, waarbij ze een

Bekijk vacature »

Traineeship Front-end developer (WO, 0 tot 3 jaar

Functie Zoals beschreven ga je vanaf start aan de slag bij een passende opdrachtgever, hierbij kijken ze echt naar jouw wensen, kennis/ervaring maar ook de reisafstand. Momenteel hebben ze meerdere klanten waarbij ze groepen hebben opgezet wat maakt dat er diverse uitdagende kansen liggen. Naast het werken bij de opdrachtgever, en het volgen van de masterclasses, zul je regelmatig met de andere trainees in contact zijn. Niet alleen op professioneel vlak maar juist ook bij de borrels en kwartaaluitjes! Kortom; een jaar lang hard aan jezelf werken in combinatie met gezelligheid en plezier. Spreek dit jou aan? Dan komen we

Bekijk vacature »

C# developer

Functie Als C# ontwikkelaar ben jij de spin in het web bij deze organisatie. Jij begeleidt en traint de field engineers die bij de klanten machines leveren en installeren. Daarnaast ondersteun jij de field engineers als zij bij de klant vastlopen bij het installeren van de machine m.b.t. software matige vragen. Jouw doel is dan ook om de technische kennis van de field engineers door middel van training zoveel mogelijk uit te breiden. Dit om ervoor te zorgen dat zij zelfstandiger software matige problemen kunnen oplossen. Ook ben jij verantwoordelijk voor het bedenken van software oplossingen voor klanten en dit

Bekijk vacature »

Cloud Developer

Cloud Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

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 »

Frontend Developer Vue Nuxt HBO Javascript

Samengevat: Deze werkgever levert elke dag betere digitale gebruikerservaringen. Ben jij geschikt als frontend Developer? Heb je ervaring met Vue en Nuxt? Vaste baan: Front-End Developer HBO €3.100 - €4.600 Zij bieden opdrachtgevers een complete dienstverlening op gebied van ontwerpen en ontwikkelen van websites, zoekmachine optimalisatie, online adverteren, content marketing en conversie verbetering. Zij werken met een eigen ontwikkeld CMS. 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

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

15/11/2024 05:14:11
 
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.