Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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 SQL查询为(动态)列值_Mysql_Data Structures - Fatal编程技术网

Mysql SQL查询为(动态)列值

Mysql SQL查询为(动态)列值,mysql,data-structures,Mysql,Data Structures,考虑以下MySQL场景: Table1: id, date, value Table2: id, month, count 表1包含跨越1年(日期)的许多行和不同的值 有没有办法将表2列的值作为SQL查询进行“计数” 例如: 表2第1行 ID | Month | Count ------------------------------------------------------------------------------ 1 | 07 | SELECT COUNT(*) FR

考虑以下MySQL场景:

Table1:
id, date, value

Table2:
id, month, count
表1包含跨越1年(日期)的许多行和不同的值

有没有办法将表2列的值作为SQL查询进行“计数”

例如: 表2第1行

ID | Month | Count
------------------------------------------------------------------------------
1  | 07    | SELECT COUNT(*) FROM Table1 WHERE MONTH(DATE) = Table2.month
因此,如果我做一个从表2中选择*,其中月份=07

然后我将从表1中得到相应月份的行数

每行都有一个动态列值,有没有办法

注意:我的意思是如果有任何内置的方式,而不是使用类似的子查询

SELECT *, 
(SELECT COUNT(*) FROM Table1 WHERE MONTH(date) = Table2.month) as count
FROM Table2 where id = 2352

因为我的实际查询将使用多个,因此会变得非常混乱:(

您是否考虑过创建视图?)


它不会阻止查询的混乱,但它确实允许您将所有内容集中在一个地方。

每当表1发生变化时,我都会使用a更新相关表2行中的计数列。

几乎是我想要的,但我认为这是我能得到的最接近的,谢谢:)