"Lorderon" <[EMAIL PROTECTED]> wrote: > Since I don't use MySQL 4.1, is this query OK? > > SELECT SQL_CALC_FOUND_ROWS * FROM > ((SELECT * FROM t1 WHERE id>100 GROUP BY country) > UNION ALL > (SELECT * FROM t2 WHERE id>150 GROUP BY country) > LIMIT 0,10); > > I want this to return all the rows of the UNION sub-query there.. the reason > I used it as sub-query is that I want to count the rows, and then use: > SELECT FOUND_ROWS(); > to get the number of rows supposed to be retuned without using the LIMIT.. > > Is all above correct?
First of all your subqueries are illegal, because you select columns that are not in the GROUP BY clause. Since 4.1 you can write: SELECT SQL_CALC_FOUND_ROWS * FROM ( SELECT country FROM t1 WHERE id>100 GROUP BY country UNION ALL SELECT country FROM t2 WHERE id>150 GROUP BY country) as union_table LIMIT 0,10; But the following query gives you the same result: (SELECT SQL_CALC_FOUND_ROWS country FROM t1 WHERE id>100 GROUP BY country) UNION ALL (SELECT country FROM t2 WHERE id>5 GROUP BY country) LIMIT 0,10; -- For technical support contracts, goto https://order.mysql.com/?ref=ensita This email is sponsored by Ensita.net http://www.ensita.net/ __ ___ ___ ____ __ / |/ /_ __/ __/ __ \/ / Egor Egorov / /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED] /_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.net <___/ www.mysql.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]