我不理解Y的ValueError.我用%转义...
table = town+"_history"
db.execute("SELECT DATE_FORMAT(snapdate,'%%Y-%%m-%%d') AS date, SUM( population ) AS accountpopulation, count( blockid ) AS number_block FROM %s WHERE blockid =%%s GROUP BY snapdate ORDER BY snapdate DESC LIMIT 7" % table, (blockid))
Run Code Online (Sandbox Code Playgroud) SELECT t1.id, t1.name, t1.population, CAST(SUM(t2.town_1) AS CHAR) AS town, CAST(SUM(CASE WHEN t2.id LIKE 23 THEN 1 ELSE 0 END) AS CHAR) AS population FROM area1 t1 LEFT JOIN area2 t2 ON t1.id = t2.id WHERE t1.id like 23
Run Code Online (Sandbox Code Playgroud)
通常,如果两个表中都存在id = 23,它将匹配.但事实并非如此(不在t1表中),因此请求返回NULL值.
我怎么做才能没有结果?
我有3个查询工作完美
SELECT snapdate, COUNT( DISTINCT uid) AS t1
FROM table where tid =1
GROUP BY snapdate
ORDER BY snapdate DESC LIMIT 7
Run Code Online (Sandbox Code Playgroud)
查询#1:
snapdate t1
---------- --
2013-07-02 10
2013-07-01 20
2013-06-30 60
2013-06-29 80
2013-06-28 3
2013-06-27 22
2013-06-26 93
Run Code Online (Sandbox Code Playgroud)
查询#2:
SELECT snapdate, COUNT( DISTINCT uid) AS t2
FROM table where tid =2
GROUP BY snapdate
ORDER BY snapdate DESC LIMIT 7
snapdate t2
---------- --
2013-07-02 35
2013-07-01 52
2013-06-30 69
2013-06-29 75
2013-06-28 91
2013-06-27 97
2013-06-26 …Run Code Online (Sandbox Code Playgroud)