MySQL Aanwezige leden tonen voor een bepaalde vergadering

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hi,

Ik zou graag het onderstaande voor elkaar krijgen:

Er zijn twee tabellen(leden en afmeldingen). Gebaseerd op de Lid die in beide tabellen voorkomt en het vergaderingsnummer(alleen in afmeldingen), zou ik graag de aanwezige leden tonen voor een bepaalde vergadering.

Ben nog niet zo lang bezig met MySQL en heb diverse dingen geprobeerd. Het verste kwam ik met onderstaande queries maar die geven uiteindelijk toch niet het goede resultaat.

De WHERE in de subquery werkt niet volgens mij, ik krijg de id's in vergelijking tot de gehele afmeldingen tabel en niet alleen van vergadering 18...

SELECT Lid
FROM leden
WHERE Lid NOT IN (SELECT Lid FROM afmeldingen WHERE vergadering = 18);

Onderstaande geeft een resultaat van 4 records uit de ledentabel(de afwezigen) van de 99 maar ik moet juist de andere 95 (de aanwezigen) hebben...
SELECT Lid
FROM leden
WHERE Lid = ANY (SELECT Lid FROM afmeldingen WHERE vergadering = 18);

Iemand een idee? Ik begin me er blind op te staren :?

Alle reacties


Acties:
  • 0 Henk 'm!

  • Harrie_
  • Registratie: Juli 2003
  • Niet online

Harrie_

⠀                  🔴 🔴 🔴 🔴 🔴

Misschien dit eens lezen :+

[ Voor 34% gewijzigd door Harrie_ op 02-06-2017 12:07 ]

Hoeder van het Noord-Meierijse dialect


Acties:
  • 0 Henk 'm!

  • Robicide
  • Registratie: Maart 2016
  • Laatst online: 21:43
Zoek 'ns uit wat NOT IN doet :)

Acties:
  • +1 Henk 'm!

Verwijderd

Ik snap niet waarom die eerste query niet doet wat je wilt - dat zou namelijk wel moeten.

Acties:
  • +1 Henk 'm!

  • Montaner
  • Registratie: Januari 2005
  • Laatst online: 01-09 08:19
MySQL:
1
2
3
SELECT Lid
FROM leden
WHERE Lid NOT IN (SELECT Lid FROM afmeldingen WHERE vergadering = 18);

Ik snap je uitleg na bovenstaande query niet. Deze zou gewoon moeten werken.
Zie ook:
http://sqlfiddle.com/#!9/076f8/3/0

Acties:
  • +1 Henk 'm!

  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 01-09 16:41

glashio

C64 > AMIGA > PC

MySQL:
1
2
3
4
SELECT leden.*
FROM leden
LEFT JOIN afmeldingen ON leden.Lid=afmeldingen.Lid AND afmeldingen.vergadering=18
WHERE afmeldingen.Lid IS NULL

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing


Acties:
  • 0 Henk 'm!

  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 01-09 16:41

glashio

C64 > AMIGA > PC

dubbel

[ Voor 91% gewijzigd door glashio op 02-06-2017 14:21 ]

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing


Acties:
  • +1 Henk 'm!

Verwijderd

Topicstarter
Beste allemaal, bedankt voor jullie antwoorden.
Ik heb de ledentabel aangeleverd gekregen en het bleek dat bepaalde records er uitgehaald waren waardoor de telling niet klopte... Probleem dus opgelost... Zo blind op gestaard terwijl het voor de hand lag...

Had het uiteindelijk zelf toch wel goed met mijn eerste oplossing warvan ik dacht dat de WHERE niet werkte...
Pagina: 1