2012-12-06 55 views
0
$sql = 'SELECT have_show FROM `date` WHERE DATE(`date`.day) = ?'; 
$this->db->query($sql, array($date));   //works fine 

這可以正常工作。JOINed SELECT語句中的日期變量

$sql = 'SELECT actors, visitors, tickets, have_show FROM show 
      JOIN `date` ON show.day = `date`.id 
      WHERE DATE(`date`.day) = ?'; 

$this->db->query($sql, array($date)); 

這裏用連接的語句給出0個結果。

DB模式

id(AI)  day(INT FK-date.id) actors(INT) visitors(INT) 
    1     2     3    45    

id(AI)  day(DATE)    have_show(BOOLEAN) 
    1  2012-12-06      0 
    2  2012-12-07      1 

笨的活動記錄不相同。

你們有沒有受過這種麻煩?

+0

安置自己的表模式。 – Kermit

+0

需要查看您的模式。看起來你正試圖加入一個針對ID的日期? – n8wrl

+0

我敢打賭,沒有'show'行在'show.day'中具有相同的值,因爲'date.day = 1'返回的行在'date.id'中會有' –

回答

0

試試這個

 $sql = 'SELECT actors, visitors, tickets, acts FROM `show` 
     JOIN `date` ON show.day = date.id 
     WHERE DATE(date.day) = ?'; 

    $this->db->query($sql, array($date)); 

date.daydate.id之間混合。

也許u有show.idshow.day所以看什麼ü在你的表,如果是

通過show.id

編輯您的SQL show.day取代:

 $sql = 'SELECT s.day s.actors, s.visitors, s.tickets, s.acts d.day FROM `show` s 
     JOIN `date` d ON s.day = d.id '; 
+0

''日'在節目中是'FK'到'date.id','date.day'是'DATE'字段 – NestedWeb

+0

然後它會是date.day,因爲我在我的代碼 –

+0

中寫道,但是你已經加入'show。 day on date.day','date.id' – NestedWeb