Ik heb een query gemaakt maar het resultaat is precies anders om als wat ik wil.
Situatie:
Ik heb een tabel met daarin server gegevens, wat ik wil is 1 query waarmee ik kan controleren of een server nummer vaker voorkomt of niet.
Ik heb het resultaat wel via een omweg echter ik wil dit graag in 1 query maar dat lukt me niet, dit is de query waarmee ik het juiste resultaat krijg:
Dit geeft me dus exacte het juiste resultaat, nu probeer ik deze query dus wat eenvoudiger op te zetten en had deze query dus verzonnen:
Deze query doet het dus ook echter met exact het omgekeerde resultaat als de eerste query.
Ik wil dus dat ie alleen selecteert als er GEEN match is.
Simpel gezegd ik wil alleen een output als het managed=19 en het anummer maar 1 keer voorkomt in de database en de waarde actief 1 is. Ik heb dus een probleem met dat 1 keer voorkomen, dat krijg ik niet eruit gefilterd.
Ik heb al diverse dingen geprobeerd maar ik zie het op dit moment niet meer.
De reden dan de eerste optie niet goed genoeg is komt doordat ik elders deze zelfde query wil gebruiken en hiermee direct alle servers wil laten zien, daar heb ik alleen de mogelijkheid om met 1 query te werken anders moet ik teveel gaan veranderen in het script.
Iemand een tip hoe ik dit met 1 query voor elkaar kan krijgen?
Situatie:
Ik heb een tabel met daarin server gegevens, wat ik wil is 1 query waarmee ik kan controleren of een server nummer vaker voorkomt of niet.
Ik heb het resultaat wel via een omweg echter ik wil dit graag in 1 query maar dat lukt me niet, dit is de query waarmee ik het juiste resultaat krijg:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| $sql15 = mysql_query(" SELECT id, server_anummer FROM serverlist WHERE actief='1' and managed='19' "); $tot15=0; while(list($id, $anummer) = mysql_fetch_row($sql15)) { $getvzlist = mysql_query(" SELECT * FROM serverlist WHERE server_anummer = '$anummer' and actief ='1' and managed != '19' and id !='$id' "); $vztotaal = mysql_num_rows($getvzlist); if ($vztotaal==0) { $tot15++; } } |
Dit geeft me dus exacte het juiste resultaat, nu probeer ik deze query dus wat eenvoudiger op te zetten en had deze query dus verzonnen:
PHP:
1
2
3
4
5
6
| $sql15 = mysql_query(" SELECT * FROM serverlist as r, serverlist as a WHERE a.server_anummer = r.server_anummer and a.id != r.id and a.actief = '1' and r.actief ='1' and a.managed != '19' and r.managed = '19' "); $tot15 = mysql_num_rows($sql15); |
Deze query doet het dus ook echter met exact het omgekeerde resultaat als de eerste query.
Ik wil dus dat ie alleen selecteert als er GEEN match is.
Simpel gezegd ik wil alleen een output als het managed=19 en het anummer maar 1 keer voorkomt in de database en de waarde actief 1 is. Ik heb dus een probleem met dat 1 keer voorkomen, dat krijg ik niet eruit gefilterd.
Ik heb al diverse dingen geprobeerd maar ik zie het op dit moment niet meer.
De reden dan de eerste optie niet goed genoeg is komt doordat ik elders deze zelfde query wil gebruiken en hiermee direct alle servers wil laten zien, daar heb ik alleen de mogelijkheid om met 1 query te werken anders moet ik teveel gaan veranderen in het script.
Iemand een tip hoe ik dit met 1 query voor elkaar kan krijgen?
[ Voor 6% gewijzigd door Verwijderd op 01-01-2009 22:38 . Reden: query duidelijk geplaatst ]