hallo ik heb een join waarbij ik de waardes die overeenkomen in tabel A en B worden opgehaald. Wat ik nu wil is dat de waardes uit tabel A worden opgehaald min de waardes (die overeen komen) die al vermeld zijn in tabel B
dus in tabel A staat
id 1,2,3,4,5
en tabel B staat
id 1,4
de uitkomst moet dan 2,3,5 zijn
Kan iemand mij vertellen hoe ik dit het beste kan aanpakken?
dit is de code die ik nu heb.
<?php
//gegevens uit tabel weergeven in drop down menu
$query_werknemer="SELECT * FROM werknemers INNER JOIN werknemers_in_gebruik ON werknemers.msg_werknemers_id = werknemers_in_gebruik.msg_werknemers_id ";
$result_werknemer = mysql_query($query_werknemer) or die(mysql_error());
nee ik kan het ook niet vinden. ik heb de menier van klaasjan ook gebrobeerd, maar die werkte helaas niet (mischien zelf wat verkeerd gedaan)
ik heb het nu opgelost met
<?
$query_werknemer="SELECT werknemers.*
FROM werknemers
LEFT JOIN werknemers_in_gebruik
ON werknemers.msg_werknemers_id=werknemers_in_gebruik.msg_werknemers_id
WHERE
werknemers_in_gebruik.msg_werknemers_id IS NULL ";
?>
Kunnen jullie me mischien vertellen hoe ik bij de WHARE in de tabel werkenmers_in_geberuik kan zorgen dat hij ook nog alleen naar rijden kijkt met msg_int_id =33
Ben mijn kamer aan het opruimen, en vind mijn SQL boek :)
Gelijk even opgezocht, en er staat wel degelijk EXCEPT.
Voorbeeld 12.9 uit boek: Geef het spelersnummer en de geboortedatum van elke speler die wel in Den Haag heeft woont, maar niet na 1960 is geboren.
SELECT SPELERSNR, GEB_DATUM
FROM SPELERS
WHERE PLAATS = 'Den Haag'
EXCEPT
SELECT SPELERSNR, GEB_DATUM
FROM SPELERS
WHERE GEB_DATUM > '1960-12-31'
Het SQL leerboek - Rick F. van der Lans
Maar ik denk dat MySQL het gewoon niet pikt:
mysql> INSERT INTO test(naam,auto) VALUES('Kees',1);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO test(naam,auto) VALUES('Kees',0);
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM test WHERE naam = 'Kees'
-> EXCEPT
-> SELECT * FROM test WHERE auto = 0;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXCEPT
SELECT * FROM test WHERE auto = 0' at line 2
Edit: Dit was met mysql Ver 14.12 Distrib 5.0.18, for suse-linux (i686) using readline 5.1
Edit: Op google kan je met EXCEPT MySQL niet veel nuttigs vinden, maar met EXCEPT SQL krijg je wel normale resultaten, ik hou het er maar op dat MySQL het gewoon niet (meer?) ondersteunt.