1 (edited by rufas 2007-10-02 10:41:11)

Topic: Selectas kur "order by rand()" inserte

Turiu tokia uzklausa:
            INSERT INTO `lentele1`
                (laukas1, laukas2, laukas3,laukas4)
            SELECT lentele2.laukas66, '1', '4', '5'
            FROM lentele2
                LEFT JOIN  lentel3 ON (lentel2.id = lentele3.id)
            WHERE lentele3.id is null
            ORDER BY rand()
            LIMIT 0, 5

Zodziu reikia iterpti i lentele1 5 eilutes kurios randomu paimtos is lentele2, bet neturi irasu lentele3.
Be LEFT joino viskas veikia gerai..
bet su juo jau randomas nebeveikia... Iterpia irasus orderindamas pagal laukas66

Re: Selectas kur "order by rand()" inserte

Pabandyk tą vidinį selectą dar apgaubti vienu selectu, kurio rezultatus jau rūšiuosi pagal RAND(), maždaug taip:

INSERT ...
SELECT laukas1, laukas2...
FROM (SELECT lentele2.laukas666,... FROM ... LEFT JOIN ... WHERE ...)vidinis
ORDER BY RAND()

Re: Selectas kur "order by rand()" inserte

hm padejo :) bandziau zaist su skliaustai.. bet net neisivaizdavau kad tiesiog idet i kito selecto remus... ;)

Mindaugai tu gal dirbi grynai su duomenu bazem? Labai greit ir tiksliai randi sprendimus.. ;)