Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: MySQL ongelma

QPRocky [25.07.2012 21:00:00]

#

Hakusessa olisi tämmöinen jokseenkin monimutkainen kysely, enkä oikein keksi, miten tämän saisi toteutettua.

Tarkoitus olisi saada listattua users taulusta käyttäjiä maalimäärien mukaan suurimmasta pienimpään. users.id ja career.pID vastaavat toisiaan, joten Jukan kokonais maalimäärä olisi tässä tapauksessa 250 ja Pekan 340.

Lisäksi haluaisin rajoittaa haun "jostain johonkin". LIMIT'llä kun saan vain suurimmasta LIMIT rajaan saakka.

users taulu
+----+----------+
| id | username |
+----+----------+
|  1 |   Jukka  |
|  2 |   Pekka  |
+---------------+

careers taulu
+----+-----+-------+
| id | pID | goals |
+----+-----+-------+
|  1 |  1  |  100  |
|  2 |  1  |  150  |
|  3 |  2  |  340  |
+----------+-------+

Pseudona jokseenkin näin:
SELECT * FROM users ORDER BY careers.goals DESC LIMIT 20 TO 40
Tässä siis haettaisiin 20. suurimmasta eteenpäin 40. asti.

Metabolix [25.07.2012 21:09:01]

#

Ei ole mutkikas, on aivan tavallinen kahden taulun kysely.

SELECT
	users.username,
	SUM(careers.goals) AS total_goals
FROM users
LEFT JOIN careers ON careers.pID = users.id
GROUP BY users.id
ORDER BY total_goals DESC
LIMIT 21 OFFSET 19

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta