MySQL限制Union All Statement返回的行数

时间:2011-04-07 12:02:24

标签: mysql sql

我需要查询十几个表并返回所有这些表的UNION ALL。所有这些表都具有相同的列名。此查询返回的行数最多为100.

`SELECT column1, column2 FROM table1 UNION ALL SELECT column1, column2 FROM table2 LIMIT 100;`

上述查询导致table2中的100行与table1中的所有行组合。如何实现这一目标?

4 个答案:

答案 0 :(得分:5)

尝试:

SELECT column1, column2 FROM ( 
  SELECT column1, column2 
  FROM table1 
 UNION ALL 
  SELECT column1, column2 
  FROM table2
) as resutl_table 
LIMIT 100;

答案 1 :(得分:2)

您希望将限制应用于所有表,因此您可以围绕基本查询“换行”查询。然后,包装查询可以将行计数限制应用于作为单个结果集的所有表。

SELECT * FROM ( <your existing query> ) LIMIT 100;

如果需要,您也可以申请。

SELECT * FROM ( <your existing query> ) ORDER BY column1 LIMIT 100

答案 2 :(得分:1)

select * from (
SELECT column1, column2 FROM table1 
UNION ALL 
SELECT column1, column2 FROM table2 ) as t 
LIMIT 100

答案 3 :(得分:1)

SELECT * FROM  (
            SELECT column1, column2 
            FROM table1 
              UNION ALL 
            SELECT column1, column2 
            FROM table2 
            ) as result_set LIMIT 100