ik heb momenteel de volgende (voorbeeld) dataset die van toepassing is
nou krijg ik hier met de Query
Echter, zoals je ziet staat inlogID waarde 10 hier tweemaal in. Ik wil deze dus slechts éénmaal weergeven, en dan wel degene waarbij overruled de waarde 0 heeft. Dus enkel indien er meerdere records worden geselecteerd wil ik enkel dat record met overruled waarde 0. Andere records kunnen best wel waarde 1 hebben op overruled. Ik ben dus helemaal de weg krijtgeraakt hoe ik dit doe in SQL en ben er al enkele uren mee bezig. Wie kan me de link/duw in de juiste richting geven? Met HAVING en GROUP BY kom ik er iig niet uit
P.S. De echte dataset omvat enkele 10.000 records met nog veel meer verschillende data, daarom is met de hand geen oplossing
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| ID inlogID datum aanwezig sterk happen overruled ID oldID newID editor uitleg time 4154 1 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL 4196 2 2009-08-17 0 0 0 0 NULL NULL NULL NULL NULL NULL 4161 3 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL 4147 4 2009-08-17 0 0 0 0 NULL NULL NULL NULL NULL NULL 4133 5 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL 4217 6 2009-08-17 1 0 0 1 795 4217 4217 0 geforceerde invoer 2009-08-24 00:01:03 4105 7 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL 4119 8 2009-08-17 0 0 0 0 NULL NULL NULL NULL NULL NULL 4140 9 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL 4203 10 2009-08-17 1 0 0 1 781 4203 4203 0 geforceerde invoer 2009-08-24 00:01:03 4203 10 2009-08-17 1 0 0 1 808 4203 4230 1 fout bij invullen 2009-08-24 13:05:41 4203 10 2009-08-17 1 0 0 1 827 4203 4269 1 fout bij invullen 2009-08-24 20:02:47 4203 10 2009-08-17 1 0 0 1 828 4203 4270 1 fout bij invullen 2009-08-24 20:17:14 4270 10 2009-08-17 0 0 0 0 NULL NULL NULL NULL NULL NULL 4210 11 2009-08-17 1 0 0 1 788 4210 4210 0 geforceerde invoer 2009-08-24 00:01:03 4224 12 2009-08-17 1 0 0 1 802 4224 4224 0 geforceerde invoer 2009-08-24 00:01:03 4112 13 2009-08-17 0 0 0 0 NULL NULL NULL NULL NULL NULL 4126 14 2009-08-17 0 0 0 0 NULL NULL NULL NULL NULL NULL 4189 15 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL 4236 16 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL 4182 17 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL |
nou krijg ik hier met de Query
code:
de volgende output uit.1
2
3
4
5
6
7
8
9
10
| SELECT * FROM `beer_attendance` LEFT JOIN beer_attendance_history bah ON beer_attendance.ID = bah.oldID WHERE datum = '2009-08-17' AND ( bah.ID IS NULL OR bah.oldID = bah.newID ) ORDER BY inlogID LIMIT 0 , 30 |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| ID inlogID datum aanwezig sterk happen overruled ID oldID newID editor uitleg time 4154 1 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL 4196 2 2009-08-17 0 0 0 0 NULL NULL NULL NULL NULL NULL 4161 3 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL 4147 4 2009-08-17 0 0 0 0 NULL NULL NULL NULL NULL NULL 4133 5 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL 4217 6 2009-08-17 1 0 0 1 795 4217 4217 0 geforceerde invoer 2009-08-24 00:01:03 4105 7 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL 4119 8 2009-08-17 0 0 0 0 NULL NULL NULL NULL NULL NULL 4140 9 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL 4203 10 2009-08-17 1 0 0 1 781 4203 4203 0 geforceerde invoer 2009-08-24 00:01:03 4270 10 2009-08-17 0 0 0 0 NULL NULL NULL NULL NULL NULL 4210 11 2009-08-17 1 0 0 1 788 4210 4210 0 geforceerde invoer 2009-08-24 00:01:03 4224 12 2009-08-17 1 0 0 1 802 4224 4224 0 geforceerde invoer 2009-08-24 00:01:03 4112 13 2009-08-17 0 0 0 0 NULL NULL NULL NULL NULL NULL 4126 14 2009-08-17 0 0 0 0 NULL NULL NULL NULL NULL NULL 4189 15 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL 4236 16 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL 4182 17 2009-08-17 1 0 0 0 NULL NULL NULL NULL NULL NULL |
Echter, zoals je ziet staat inlogID waarde 10 hier tweemaal in. Ik wil deze dus slechts éénmaal weergeven, en dan wel degene waarbij overruled de waarde 0 heeft. Dus enkel indien er meerdere records worden geselecteerd wil ik enkel dat record met overruled waarde 0. Andere records kunnen best wel waarde 1 hebben op overruled. Ik ben dus helemaal de weg krijtgeraakt hoe ik dit doe in SQL en ben er al enkele uren mee bezig. Wie kan me de link/duw in de juiste richting geven? Met HAVING en GROUP BY kom ik er iig niet uit
P.S. De echte dataset omvat enkele 10.000 records met nog veel meer verschillende data, daarom is met de hand geen oplossing