• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Beta-testers gezocht voor Crypto-oefenplatform

    Syntax 29 januari 2026 om 16:11
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04

Marktplaats

  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

Selecteren van entries uit een tabel met restricties uit een andere tabel

  • L.Groot
  • 9 juli 2015 om 17:13
  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 9 juli 2015 om 17:13
    • #1

    Hallo iedereen!

    Ik ben weer bezig om de personeelsapp van onze afdeling te verbeteren. Dit wil ik gaan doen door een lijst te maken van medewerkers die op een geselecteerde dag vrij zijn, weer te geven. Het probleem is, dat de SQL structuur daar niet op gemaakt is, en dat ik niet weet met welke query ik dat op kan halen.

    De structuur ziet er als volgt uit:

    Tabel "employees"
    Hierin staan alle medewerkers.
    id int(150)
    name varchar(150)
    name_wh varchar(150)

    Tabel "working_hours"
    Hierin staan alle diensten.
    id int(250)
    employee int(150)
    date date
    code varchar(10)
    from time
    till time

    En de kolom employee uit de tabel employees staat dus gelijk aan het id uit de tabel working_hours.

    En de bedoeling is nu, om uit de tabel employees alle medewerkers te halen die in tabel working_hours op een gespecificeerde dag geen dienst (is gelijk aan entry in de tabel) hebben.

    Zelf dacht ik deze query, maar die geeft alle employees weer, ook die gewoon een dienst hebben op de aangegeven dag.

    SQL
    SELECT name FROM employees LEFT JOIN working_hours ON employees.id != working_hours.employee WHERE working_hours.date='2015-07-09'

    Alvast heel erg bedankt voor het meedenken!


    Groetjes,

    Lars

  • Guest, wil je besparen op je domeinnamen? (ad)
  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 9 juli 2015 om 22:15
    • #2

    Er moet natuurlijk wel een verband zijn tussen de twee tabellen (de employee id's moeten op een of andere manier overeenstemmen).

    Probeer het eens met (NOT) EXISTS:

    SQL
    SELECT e.name
    FROM employees e
    WHERE NOT EXISTS (
        SELECT w.id
        FROM working_hours w
        WHERE w.employee = e.id
        AND w.date = '2015-07-09'
    )

    Overigens, als je enkel opslaat wanneer iemand niet beschikbaar is zegt dat niets over wanneer iemand wel beschikbaar is.


    Als je bijvoorbeeld maar 4 dagen in de week werkt (ma-do) dan ben je morgen (vr) wel beschikbaar volgens deze query.


    Wordt iemand dan op zijn vrije dag ingeroosterd? :)

    Ik zou dus ook een soort van werktijden table verwachten, maar dan in de zin: wanneer is iemand beschikbaar (de tegenhanger van wanneer is iemand bezet - de working_hours tabel)


    En hier probeer je dus de beschikbaarheid te bepalen via een query, maar zou het niet veel intuïtiever zijn om e.e.a. visueel weer te geven in een soort van timetable / kalender waar (gekleurde) blokken in staan die reeds ingeroosterde uren weergeven? Dan is in één oogopslag duidelijk wie er niet op enig moment beschikbaar is.


    Oh en die "from" kolomnaam is niet heel erg handig gekozen, want dat is een gereserveerd woord :/.

  • webDev
    Beginner
    Ontvangen Reacties
    3
    Berichten
    10
    • 16 juli 2015 om 08:02
    • #3

    dit kan je oplossen door `from` te doen

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 16 juli 2015 om 13:47
    • #4
    Citaat van webDev

    dit kan je oplossen door `from` te doen

    Dit kun je ook voorkomen door een handigere naam te kiezen. Je zou ook kunnen gaat voor een variant waarbij je alle kolommen voorziet van een unieke prefix, bijvoorbeeld wh_from. In beide gevallen hoef je geen backticks te gebruiken.

    Tenzij je overal consequent backticks omheen zet (wat nogal bewerkelijk is en de query slechter leesbaar maakt) zou ik (alleen al) in het kader van uniformiteit (en tis gewoon verdomd onpraktisch) dit probleem gewoon op voorhand uit de weg gaan.

    Tevens: /offtopic

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 17 juli 2015 om 14:17
    • #5

    Mijn excuses voor deze late reactie! Ik was zo druk, dat ik geen tijd had om te programmeren, maar ben er zojuist weer mee verder gegaan en met behulp van FangorN is het me gelukt.

    Hartelijk dank!!

    Wat betreft de from kolomnaam, daar ben ik het mee eens, het is geen goede keuze voor een kolom.

    Bij ons kun je elke dag ingeroosterd worden, tenzij het je standaard dag vrij is, of je verlof voor aanvraagt. Echter, de app geeft gewoon het rooster weer wat in een ander programma gemaakt is. Deze functie is er om te kijken wie er niet werkt, om zo te kunnen kijken wie eventueel je dienst over kan nemen. Daarin hoeven verder vaste vrije dagen etc. niet in te worden meegenomen.

    Iedereen hartelijk dank voor het meedenken!!

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 1 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design