JOIN Query met een LIMIT
remco schrubben
04/06/2012 01:19:17Via een query probeer ik met een JOIN diverse gegevens op halen.
Ik beschrijf eerst even wat voorbeelden. Hier zijn wel voorbeeld gegevens gebruikt. Maar schetst wel wat ik wil bereiken.
De database ziet er uit als:
table1:
1_id - weeknr
1 - 20
2 - 21
3 - 22
table2
id - 1_id - positie - naam
1 - 1 - 1 - remco
2 - 1 - 2 - eric
3 - 1 - 3 - jan
4 - 2 - 1 - willie
5 - 2 - 2 - johnny
6 - 3 - 1 - wouter
7 - 3 - 2 - eric-jan
De Query is:
SELECT
table1.1_id,
table1.weeknr
table2.id
table2.1_id
table2.positie,
table2.naam
FROM
table1
INNER JOIN
table2
ON
table1.1_id = table2.1_id
ORDER BY
table2.positie
Wat wil ik bereiken:
Zoals je ziet heb ik in table1 3 rows staan en in table2 7 rows.
Nu haal ik de huidige week op en toon ik de naam en positie's. Dit lukt zoals bedoelt is. Alleen zodra ik LIMIT 1 toevoeg dan krijg ik maar 1 result van table2, dit terwijl in table2 2 of meer rows per week aanwezig zijn. Mijn bedoeling is dat ik een LIMIT 1 krijg op de table1.
Nu heb ik iets gelezen over GROUP BY table1.weeknr LIMIT 1 of GROUP BY table2.positie LIMIT 1. Maar hiermee krijg ik ook alleen maar 1 result uit table2. Tevens heb ik tijdens het testen van de GROUP BY de JOIN afgewisseld met LEFT JOIN, INNER JOIN, RIGHT JOIN. Dit geeft ook niet mijn gewenste result.
Wie kan mij een zetje geven.
Ik beschrijf eerst even wat voorbeelden. Hier zijn wel voorbeeld gegevens gebruikt. Maar schetst wel wat ik wil bereiken.
De database ziet er uit als:
table1:
1_id - weeknr
1 - 20
2 - 21
3 - 22
table2
id - 1_id - positie - naam
1 - 1 - 1 - remco
2 - 1 - 2 - eric
3 - 1 - 3 - jan
4 - 2 - 1 - willie
5 - 2 - 2 - johnny
6 - 3 - 1 - wouter
7 - 3 - 2 - eric-jan
De Query is:
SELECT
table1.1_id,
table1.weeknr
table2.id
table2.1_id
table2.positie,
table2.naam
FROM
table1
INNER JOIN
table2
ON
table1.1_id = table2.1_id
ORDER BY
table2.positie
Wat wil ik bereiken:
Zoals je ziet heb ik in table1 3 rows staan en in table2 7 rows.
Nu haal ik de huidige week op en toon ik de naam en positie's. Dit lukt zoals bedoelt is. Alleen zodra ik LIMIT 1 toevoeg dan krijg ik maar 1 result van table2, dit terwijl in table2 2 of meer rows per week aanwezig zijn. Mijn bedoeling is dat ik een LIMIT 1 krijg op de table1.
Nu heb ik iets gelezen over GROUP BY table1.weeknr LIMIT 1 of GROUP BY table2.positie LIMIT 1. Maar hiermee krijg ik ook alleen maar 1 result uit table2. Tevens heb ik tijdens het testen van de GROUP BY de JOIN afgewisseld met LEFT JOIN, INNER JOIN, RIGHT JOIN. Dit geeft ook niet mijn gewenste result.
Wie kan mij een zetje geven.
PHP hulp
25/11/2024 01:49:39Erwin H
04/06/2012 10:34:13Je kan de limit via een subquery alleen voor table1 laten gelden:
remco schrubben
04/06/2012 23:15:01Ik ga deze even proberen zodra ik weer achter de goede pc zit.
Het is ook de bedoeling dat ik een limit krijg op table1.
Uitkomst laat ik horen.
Het is ook de bedoeling dat ik een limit krijg op table1.
Uitkomst laat ik horen.