Hi,
Ik heb een probleempje qua structuur:
Ik heb de volgende tables:
user_1
user_2
user_3
etc.
en een table users waar de gegevens in zitten + uid
nu wil ik een query doen in alle tables en de eerste 25 resultaten krijgen (kan niet met limit om dat het over meerdere tables gaat)
ik moet kijken of er in een table van een user iets sta, zoja dan wil ik het hebben.
Ik kan het volgende doen en dan kijken of ik een hit heb (COUNT), maar dit is een vieze manier omdat ik alle users langs moet gaan en dan de eerste 25 users moet pakken die aan de voor waarde vol doet
Is er een betere manier?
(ps. ik ben niet goed in uitleggen dus als je er niks van snap zeg dat dan effe)
Ik heb een probleempje qua structuur:
Ik heb de volgende tables:
user_1
user_2
user_3
etc.
en een table users waar de gegevens in zitten + uid
nu wil ik een query doen in alle tables en de eerste 25 resultaten krijgen (kan niet met limit om dat het over meerdere tables gaat)
ik moet kijken of er in een table van een user iets sta, zoja dan wil ik het hebben.
Ik kan het volgende doen en dan kijken of ik een hit heb (COUNT), maar dit is een vieze manier omdat ik alle users langs moet gaan en dan de eerste 25 users moet pakken die aan de voor waarde vol doet
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| SELECT
COUNT(user_1.*) as '1',
COUNT(user_2.*) as '2',
COUNT(user_3.*) as '3'
FROM
user_1,
user_2,
user_3
WHERE
user_1.did = ' . $did .'
AND
user_2.did = ' . $did .'
AND
user_3.did = ' . $did .'
AND
user_1.tsBegin > ' . $dateTs .'
AND
user_2.tsBegin > ' . $dateTs .'
AND
user_3.tsBegin > ' . $dateTs .'
AND
user_1.tsBegin < ' . ((int)$dateTs + 86400) . '
AND
user_2.tsBegin < ' . ((int)$dateTs + 86400) . '
AND
user_3.tsBegin < ' . ((int)$dateTs + 86400) . '
; |
Is er een betere manier?
(ps. ik ben niet goed in uitleggen dus als je er niks van snap zeg dat dan effe)