PHP代碼(相關)SQL PHP的混淆複雜
$分貝= '2011-02-28'; $ a ='2011-02-01';
,這是查詢的一部分
LEFT JOIN
abc
ON
abc.date between '$a' and '$db'
此查詢顯示以下結果:
1 2011-02-08
6 2011-02-09
6 2011-02-11
1 2011-02-13
,但我想要的是得到0的結果,如果有n行的其他日期。
PHP代碼(相關)SQL PHP的混淆複雜
$分貝= '2011-02-28'; $ a ='2011-02-01';
,這是查詢的一部分
LEFT JOIN
abc
ON
abc.date between '$a' and '$db'
此查詢顯示以下結果:
1 2011-02-08
6 2011-02-09
6 2011-02-11
1 2011-02-13
,但我想要的是得到0的結果,如果有n行的其他日期。
你不能這樣做(不是不加入包含所有日期的表,至少)。
顯示0表示沒有數據的日期是應用程序的工作,而不是數據庫。這很簡單,只需編寫從開始日期到結束日期的循環,然後在結果集中沒有行的日期輸出0。
SQL的工作是告訴你什麼是數據,而不是什麼。
while ($row = mysql_fetch_array($result)) {
$results[$row['date']] = $row['count'];
}
for ($time = strtotime('2011-02-01'); $time <= strtotime('2011-02-28'); $time += 86400) {
$datestr = date('Y-m-d', $time);
if (isset($results[$datestr])) {
echo "Count for date $datestr: " . $results[$datestr];
} else {
echo "Count for date $datestr: 0";
}
}
你能告訴如何做到這一點與PHP? im confused:S? – cute 2011-02-13 14:42:29
從你給你正在試圖解決我猜你有什麼問題的有限的信息正在努力尋找「免費預約」或類似。
如果是這樣,那麼這應該幫助你。 http://www.artfulsoftware.com/infotree/queries.php?&bw=1280#98
本網站有一些查詢模式,這將有助於您的數據庫思維和設計。
切線評論:沒有日期2011-02-30。二月只有28天。 – 2011-02-13 14:42:14