2014-10-09 41 views
1

我正在構建一個月度統計表單系統。如果統計數據已設置,系統的首頁會顯示一個'+',如果沒有統計數據,則顯示一個[鉛筆圖形]。MySQL:確定多個表中是否存在日期

頭版類似於這樣(與管代替鉛筆字形)

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

此鏈接可能會有幫助http://stackoverflow.com/questions/14222605/complex-sql-query-checking-column-values-in-multiple-tables – 2014-10-09 20:37:14

回答

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,你有七個表中的至少一個匹配行。

相關問題