Mysql 子选择还是更优雅的?

Mysql 子选择还是更优雅的?,mysql,sql,Mysql,Sql,很难解释我究竟想做什么,因此以下是allready有效的问题: SELECT (SELECT COUNT(cars) '. HUGE_FROM_LIST .' '. HUGE_WHERE_QUERY .' AND cars > 0 ) AS cars, (SELECT COUNT(houses) '. HUGE_FROM_LIST .' '. HUGE_WHERE_QUERY .' AND houses_type = 8 ) AS houses8, ... 这样我得到两个结果,告诉我有多

很难解释我究竟想做什么,因此以下是allready有效的问题:

SELECT
(SELECT COUNT(cars) '. HUGE_FROM_LIST .' '. HUGE_WHERE_QUERY .' AND cars > 0 ) AS cars,
(SELECT COUNT(houses) '. HUGE_FROM_LIST .' '. HUGE_WHERE_QUERY .' AND houses_type = 8 ) AS houses8,
...
这样我得到两个结果,告诉我有多少辆8型车和房子。我不习惯对每个结果都进行一次查询,所以我尝试了子选择

我做了次选择,所以单个查询只取决于它们自己的位置。 问题是,每次都会重复来自列表的庞大查询和其中的庞大查询,整个过程变得非常庞大


还有更优雅的吗?

我不知道你为什么不想做多个查询,但不管你怎么做。。。如果您有将在许多不同位置重复的
SELECT
criteria(logic),那么最好将该逻辑封装到单个视图中。然后,当您需要使用该逻辑获取数据时,您可以简单地引用视图。

我不确定您为什么不想进行多个查询,但无论您如何进行。。。如果您有将在许多不同位置重复的
SELECT
criteria(logic),那么最好将该逻辑封装到单个视图中。然后,当需要使用该逻辑获取数据时,您可以简单地引用视图。

是的,分为两个查询,并对哪个方法执行fasteryeah进行基准测试,这不是我搜索的更优雅的方式是的,分为两个查询,并对哪个方法执行fasteryeah进行基准测试,这并不是我应该提到的更优雅的搜索方式,我不能在这里使用视图。此查询是Different查询的一部分,在某些ajax刷新时会触发该查询。所以我想让它尽可能平滑,因为会有很多ajax调用。如果它不能被进一步压缩/优化,那么我将不得不接受它。为什么它是不同查询的一部分而不考虑视图的使用?它没有。但我不能使用它们。问题再次变成。。。为什么?如果我把它放在一个视图中,我可以更简单地访问它,但查询的性能/复杂性保持不变。所以这不是一个更优雅/更快的查询。我应该提到,我不能在这里使用视图。此查询是Different查询的一部分,在某些ajax刷新时会触发该查询。所以我想让它尽可能平滑,因为会有很多ajax调用。如果它不能被进一步压缩/优化,那么我将不得不接受它。为什么它是不同查询的一部分而不考虑视图的使用?它没有。但我不能使用它们。问题再次变成。。。为什么?如果我把它放在一个视图中,我可以更简单地访问它,但查询的性能/复杂性保持不变。因此,这不是一个更优雅/更快的查询。
SELECT
    COUNT(IF(cars > 0, TRUE, NULL)) AS cars,
    COUNT(IF(houses_type = 8, TRUE, NULL)) AS houses8,
    ...
'. HUGE_FROM_LIST .'
'. HUGE_WHERE_QUERY