met de volgende query haal ik drie rows op
dit werkt op zich prima. Maar het komt soms voor dat er 2 of 3 resultaten hetzelfde userid hebben, bijvoorbeeld
en dat wil ik niet.
Nu dacht ik dit op te gaan lossen met t volgende
maar dan krijg ik ruzie met postgres
en de ORDER BY moet op id liggen en niet op userid.
Kan ik dit uberhaupt wel met 1 query oplossen?
Ik gebruik hier PostgreSQL 7.2.1 en niet MySQL
code:
1
2
3
4
5
6
7
8
9
10
11
| select userid, id, value1 from A
where
status in (1)
and
userid in (
select id from users
where
status = 1
)
order by id desc
limit 3 |
dit werkt op zich prima. Maar het komt soms voor dat er 2 of 3 resultaten hetzelfde userid hebben, bijvoorbeeld
code:
1
2
3
4
| userid id value1
244 2 bla
244 5 bla2
230 10 bla3 |
en dat wil ik niet.
Nu dacht ik dit op te gaan lossen met t volgende
code:
1
2
3
4
5
6
7
8
9
10
11
| select DISTINT ON (userid) userid, id, value1 from A
where
status in (1)
and
userid in (
select id from users
where
status = 1
)
order by id desc
limit 3 |
maar dan krijg ik ruzie met postgres
code:
1
| ERROR: SELECT DISTINCT ON expressions must match initial ORDER BY expressions |
en de ORDER BY moet op id liggen en niet op userid.
Kan ik dit uberhaupt wel met 1 query oplossen?
Ik gebruik hier PostgreSQL 7.2.1 en niet MySQL