Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:一个查询中有多个SELECT语句_Mysql - Fatal编程技术网

MySQL:一个查询中有多个SELECT语句

MySQL:一个查询中有多个SELECT语句,mysql,Mysql,我还在学习MySQL,但是我想知道如何在一个查询中查询多个SELECT语句 目前我有两个查询,一个显示12个月的订单数量,另一个显示一个月的订单数量。我想同时查询这两个问题,但是会收到两个不同的结果 我曾尝试在我的查询中使用UNION,但是它只输出到一个表中,很难将结果与什么查询区分开来 SQL: 选择OrderDate,OrderItems,COUNT(*)作为tb_orders中的总计,其中OrderDate>DATE_SUB(现在(),间隔12个月)按OrderItems分组按总计描述限制

我还在学习MySQL,但是我想知道如何在一个查询中查询多个SELECT语句

目前我有两个查询,一个显示12个月的订单数量,另一个显示一个月的订单数量。我想同时查询这两个问题,但是会收到两个不同的结果

我曾尝试在我的查询中使用
UNION
,但是它只输出到一个表中,很难将结果与什么查询区分开来

SQL:

选择OrderDate,OrderItems,COUNT(*)作为tb_orders中的总计,其中OrderDate>DATE_SUB(现在(),间隔12个月)按OrderItems分组按总计描述限制10
选择OrderDate,OrderItems,COUNT(*)作为tb_orders中的总计,其中OrderDate>DATE_SUB(现在(),间隔1个月)按OrderItems分组按总计描述限制10;

TIA

使用union,您始终可以添加硬编码值以帮助区分行:

select 'Invertebrate' as AnimalPhylum, species as AnimalSpecies from invertebrates_table
union
select 'Vertebrate', species from vertebrates_table;

您可以通过动态创建一个标识符来合并这两个查询,无论该记录是来自月度查询还是年度查询。列
类型
是下面查询中用于此目的的列

SELECT z.*
FROM
(
  SELECT OrderDate, OrderItems, COUNT(*) AS Total, 'YEAR' as type
  FROM tb_orders
  WHERE OrderDate > DATE_SUB(now(), INTERVAL 12 MONTH)
  GROUP BY OrderItems
  LIMIT 10
  UNION
  SELECT OrderDate, OrderItems, COUNT(*) AS Total, 'MONTH' as type
  FROM tb_orders
  WHERE OrderDate > DATE_SUB(now(), INTERVAL 1 MONTH)
  GROUP BY OrderItems
  LIMIT 10
) AS z
ORDER BY z.Total DESC;

请参见@草莓谢谢,但如果我理解正确,您需要两个带查询的表,那么这在我的情况下并不起作用。然而,这不是mysql的工作方式,您只能得到一个结果表,而不是单独的表。但是,您可以使用子查询、union或join来获得所需的结果,并使用别名进行分离。如果您不需要union,则可以从一个查询中获得两个结果集。为什么您认为它们没有同时运行?但是,感谢UNION,在第一个SELECT语句之后,我无法执行按订单项目分组按总描述订单限制5。不幸的是,我收到以下错误:错误代码:1064。您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第9行0.00040秒处使用“UNION SELECT id、OrderDate、OrderItems、COUNT(*)作为总计,“MONTH”作为类型F”的正确语法对我有效。我还添加了一个小提琴链接供您参考。看看,谢谢你的提琴。太奇怪了,我会出错。。。