我正在建立一个月度统计表格系统。如果没有为某个月设置统计数据,系统的首页会显示“+”,如果已设置统计数据,则会显示[铅笔字形]。
首页看起来与此类似(铅笔字形替换为管道)
Year 2014
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
+ + + | + | | | | | | |
Year 2013
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
+ + + + + | | | + | + |
......等等。
足够简单。
但问题是我不只是检查一个表,看看它的“month_id”字段是否等于月份;我正在检查7个不同的表。所有7个表都有公共字段“month_id”。
如果7个表中的任何一个包含与当前月份匹配的month_id,则应显示铅笔字形。如果没有,则为'+'。
我不需要为此生成HTML或PHP的任何帮助,只需提供有关查询数据库的有效方法的建议。
答案 0 :(得分:2)
这是一个解决方案:
SELECT
(SELECT COUNT(*) FROM table1 WHERE month_id = MONTH(CURDATE()))
+ (SELECT COUNT(*) FROM table2 WHERE month_id = MONTH(CURDATE()))
+ (SELECT COUNT(*) FROM table3 WHERE month_id = MONTH(CURDATE()))
+ (SELECT COUNT(*) FROM table4 WHERE month_id = MONTH(CURDATE()))
+ (SELECT COUNT(*) FROM table5 WHERE month_id = MONTH(CURDATE()))
+ (SELECT COUNT(*) FROM table6 WHERE month_id = MONTH(CURDATE()))
+ (SELECT COUNT(*) FROM table7 WHERE month_id = MONTH(CURDATE()));
如果结果大于0,则七个表中至少有一个匹配的行。