Hi Jocelyn,

> I wonder how works DISTINCT when using it with the following join.
> Ex :
>
> mysql> SELECT DISTINCT topic FROM
> searchmainhardwarefr7,searchjoinhardwarefr7 WHERE
> searchmainhardwarefr7.numreponse=searchjoinhardwarefr7.numreponse AND
> (mot='test') AND date >= '2002-03-24' ORDER BY date DESC LIMIT 0,20;
> +--------+
> | topic  |
> +--------+
> | 108499 |
> | 108341 |
> | 108425 |
> | 108425 |
> | 108425 |
> | 108429 |
> | 108429 |
> | 108429 |
> | 108429 |
> | 108427 |
> | 108427 |
> | 108429 |
> | 108429 |
> | 108429 |
> | 108429 |
> | 108429 |
> | 108429 |
> | 108429 |
> | 108429 |
> | 108429 |
> +--------+
> 20 rows in set (0.08 sec)
>
> In this case I was expecting only distinct topic number list, like
with the
> following query :
>
> mysql> SELECT topic FROM searchmainhardwarefr7,searchjoinhardwarefr7
WHERE
> searchmainhardwarefr7.numreponse=searchjoinhardwarefr7.numreponse AND
> (mot='test') AND date >= '2002-03-24' GROUP BY topic ORDER BY date
DESC
> LIMIT 0,20;
> +--------+
> | topic  |
> +--------+
> | 108499 |
> | 108429 |
> | 108427 |
> | 108425 |
> | 108417 |
> | 108341 |
> | 108312 |
> | 108303 |
> | 108275 |
> | 108268 |
> | 108167 |
> | 108233 |
> | 108231 |
> | 108172 |
> | 108052 |
> | 108102 |
> | 107835 |
> | 108122 |
> | 108096 |
> | 106794 |
> +--------+
> 20 rows in set (0.10 sec)
>
> Does DISTINCT implicitely check columns included in the WHERE clause ?
> Thanks you.


AFAIK the WHERE clause (join) is carried out earlier (etc) and the
DISTINCT carried out on the resultset, almost at the end of the process.

Regards,
=dn


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to