我使用UNION查询从两个表中提取基于日期的数据。下面优化一个UNION mysql查询
SELECT title, id, date as date_added
FROM test1 WHERE test1.id
UNION
SELECT title, customer as id, date_added
FROM test2 WHERE test2.id
ORDER BY date_added DESC LIMIT 0,8
查询我有过期的指标,DATE_ADDED每个表...问题是,查询不优化,当我使用解释同时显示被选中的表中的所有行给我输出。
是否有任何其他方式做这个查询,以便它可以优化?我能想到的唯一解决方案是使用LIMITS分别运行两个查询,并在应用程序中对数据进行排序,但似乎无法在应用程序中执行分页。
为限制选定的行,您的WHERE条件看起来有点截断。你有没有遗漏什么? –
不,我没有。即使我删除where子句,所选查询仍然等于每个表中的总行数。 – user350230
好吧,他们会的,他们不会。除了' .id'需要包含一个值为true的值以外,您没有相等或其他术语来限制'WHERE'语句。通常它会有一个限制性术语,例如'column = value'或'column> value'或'value1和value2之间的列'等。 –