Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: SQL-juttu

Matso [13.05.2008 22:49:39]

#

Haluan valita MAX shout_value:n niistä tuloksista joissa product_id = $product_id
Tämä hakee MAX shout_valuen koko taulusta:

SELECT user_id, MAX(shout_value) FROM shouts WHERE product_id = $product_id

Yritin myös sisäkkäisiä hakuja

SELECT user_id, shout_value FROM shouts WHERE product_id = $product_id AND shout_value = (SELECT MAX(shout_value) FROM shouts)

Mutta eipä tuokaan tuota tulosta, kun siinä ehtona on, että se shout_value on koko taulun suurin :/

Siis eli lyhyemmin:
Miten haen MAX arvon tietyn ehdon täyttävistä tuloksista? (muuten kun PHP:n for loopilla)

Antti Laaksonen [13.05.2008 23:07:21]

#

Tämä temppu ainakin toimii:

SELECT user_id, shout_value FROM shouts WHERE product_id = $product_id ORDER BY shout_value DESC LIMIT 1

Eli rivit haetaan järjestyksessä shout_valuen mukaan, mutta niistä valitaan vain ensimmäinen.

Hycke [13.05.2008 23:17:36]

#

Onnistuisiko GROUP BY:lla?

SELECT user_id, MAX(shout_value)
FROM shouts
WHERE product_id = $product_id
GROUP BY user_id
ORDER BY 2 DESC

Matso [13.05.2008 23:17:40]

#

Äh, ei voi olla totta. Yritin kokoajan saada sitä MAX arvoa taulusta jossa ei ollu yhtään riviä O.o. Tiedä sit jos joku noista olis toiminukki.

Vastaus

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

Tietoa sivustosta