Voisitteko auttaa ymmärtämään alla olevaa mysql-queryä? Menee itselle niin monimutkaiseksi, että järki loppuu kesken. Ei auttanut ohjeet mysql.com:in sivuillakaan. Tarkoitus olisi saada järjesteltyä palautuneet rivit "title":n mukaan, ei "category":n mukaan, mutta ORDER BY:n muuttaminen ei oikein toiminut (skripti ei ilmeisesti osannut käsitellä saatua tietoa).
$sql = "SELECT (category - " . FIRST_USER_CAT . ") as user_id," . " '???' as user_name," . " COUNT(DISTINCT a.aid) as alb_count," . " COUNT(DISTINCT pid) as pic_count," . " MAX(pid) as thumb_pid " . " FROM albums AS a " . "INNER JOIN pictures AS p ON p.aid = a.aid " . " WHERE approved = 'YES' AND category > " . FIRST_USER_CAT . " " . "$FORBIDDEN_SET " . " GROUP BY category " . " ORDER BY category ";
albums -taulukko
aid title pos category
14 "marin albumi" 1 13178
8 "ihme otoksia" 1 11367
4 kuvia 1 11411
5 "uusi albumi" 11409
6 albumi 1 10679
...
pictures -taulukko
pid aid owner_id owner_name title approved
11 4 1411 pekka Koirakuva YES
32 9 2290 lassi Kissakuva YES
31 8 1367 olavi Tyttökuva YES
29 4 1411 pekka Poikakuva YES
40 4 1411 pekka Apinakuva YES
...
En nyt sen tarkemmin ala selvittämään tuon rakennetta, mutta lajittelu hoituu käyttämällä a.title. Tämä siksi että lauseessa on sisäinen liitos (INNER JOIN) jolloin tauluille tulee asettaa tarkenne. Tässä tapauksessa tarkenne on albums AS a ja pictures AS p eli jos haluat lajitella albums-taulun titlen mukaan, käytetään a.title. Jos taas pictures-taulun owner_name mukaan, käytettäisiin p.owner_name jne.
Kiitoksia, homma roger. Noilla tiedoilla helpottui tuo kyselyn ymmärtäminenkin sopivasti.
Sekä pitää muistaa myös järjestellä noi groupit. Tai siis mitä koitan selittää, että GROUP BY kuntoon.
Aihe on jo aika vanha, joten et voi enää vastata siihen.