Of course you realize it's the ORDER BY in the subquery that is giving
you greif.  I don't see why you wouldn't get the same net effect if
you remove the ORDER BY from the inner query and leave it on the outer
one..   to my eye, it looks like you would get the same randomized
result.


On 1/16/07, Brian Dunning <[EMAIL PROTECTED]> wrote:
Hmmm, I see the problem. I can't think of any other way to do it. I
have a table of people, and I want to return 20 random people. Each
person has multiple picture records, and I want to return a random
picture for each. That's why I'm trying to put the 'order by rand()'
in the subquery: if I make it a single query and try to do a 'group
by' it always gives the same picture for each person.


On Jan 16, 2007, at 11:55 AM, Rhino wrote:

>
> ----- Original Message ----- From: "Brian Dunning"
> <[EMAIL PROTECTED]>
> To: "mysql" <mysql@lists.mysql.com>
> Sent: Tuesday, January 16, 2007 2:23 PM
> Subject: Formatting a subquery?
>
>
>> I can't get MySQL 5 to like this query. Can you tell what I'm
>> trying  to do, and is there a problem with my formatting?
>>
>> select account_id,picture_id from pictures where account_id in
>> (select account_id from accounts order by rand() limit 20)
>> order by rand();
>>
> I haven't used MySQL 5 and I'm not sure what it will tolerate but
> in DB2 SQL, which I have used for many years, you cannot do an
> ORDER BY within a subquery. Only the other query can contain an
> ORDER BY. (Then again, I am not completely up-to-date on the SQL
> standards any more so maybe DB2 V9 will even tolerate an ORDER BY
> in the subquery.)
>
> You may also be having trouble because of the LIMIT clause in the
> subquery.
>
> In any case, I think the ORDER BY in the subquery is redundant: you
> shouldn't care what order the rows in the subquery are read, just
> what order is used to PRESENT them in the final query.
>
> --
> Rhino


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]




--
- michael dykman
- [EMAIL PROTECTED]

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to