Hi,
Ik ben recent van MySQL overgestapt naar Postgres en meteen ook lekker aan het knutselen geslagen. Nu loop ik een beetje vast op onderstaande query. Ik probeer hiermee content uit een meertalige database te halen, en daarbij eveneens een foto weer te geven die op betreffende dag genomen is.
Natuurlijk klopt de query zoals die nu is niet; immers, zijn er meerdere foto's per dag gemaakt, dan komen die allemaal terug in de result. Dat is niet de bedoeling.
In mySQL zou ik in een dergelijk geval een GROUP BY doen op page.created, en daarmee het probleem opgelost hebben. PostgreSQL vindt dat echter geen goed idee..
Hoe zou ik dit kunnen oplossen? Is het mogelijk hiervoor een subquery te formuleren? Of moet ik er gewoon een losse query achteraan plakken en de bijbehorende foto op die manier uitvragen?
Ik ben recent van MySQL overgestapt naar Postgres en meteen ook lekker aan het knutselen geslagen. Nu loop ik een beetje vast op onderstaande query. Ik probeer hiermee content uit een meertalige database te halen, en daarbij eveneens een foto weer te geven die op betreffende dag genomen is.
Natuurlijk klopt de query zoals die nu is niet; immers, zijn er meerdere foto's per dag gemaakt, dan komen die allemaal terug in de result. Dat is niet de bedoeling.
In mySQL zou ik in een dergelijk geval een GROUP BY doen op page.created, en daarmee het probleem opgelost hebben. PostgreSQL vindt dat echter geen goed idee..
Hoe zou ik dit kunnen oplossen? Is het mogelijk hiervoor een subquery te formuleren? Of moet ik er gewoon een losse query achteraan plakken en de bijbehorende foto op die manier uitvragen?
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| SELECT page.created, content.title, content.content, content.url, image.file, image_local.title FROM country_local INNER JOIN country ON (country_local.country_id = country.country_id AND country_local.language_id = 1) INNER JOIN visit ON (country.country_id = visit.country_id) INNER JOIN visit_local ON (visit.visit_id = visit_local.visit_id AND visit_local.language_id = 1) INNER JOIN page_visit ON (visit_local.visit_id = page_visit.visit_id) LEFT OUTER JOIN page ON (page_visit.page_id = page.page_id) LEFT OUTER JOIN content ON (page.page_id = content.page_id AND content.language_id = 1) LEFT OUTER JOIN visit AS trip ON (visit.trip_id = trip.visit_id) LEFT OUTER JOIN visit_local AS trip_local ON (trip.visit_id = trip_local.visit_id AND trip_local.language_id = 1) LEFT OUTER JOIN image ON (TO_CHAR(page.created, 'yymmdd') = TO_CHAR(image.date, 'yymmdd')) LEFT OUTER JOIN image_local ON (image.image_id = image_local.image_id AND image_local.language_id = 1) WHERE country_local.url = 'zuid-korea' AND visit_local.url = 'zuid-korea-2' ORDER BY page.created ASC LIMIT 10; |
Through meditation I program my heart to beat breakbeats and hum basslines on exhalation -Blackalicious || *BetuweKees was AFK; op de fiets richting China en verder