JOINed SELECT语句中的日期变量

时间:2012-12-06 19:53:56

标签: mysql date join

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

这可以正常工作。

$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结果。

数据库架构

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

codeigniter的活动记录也是如此。

你们有没有遇到过这种问题?

1 个答案:

答案 0 :(得分: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之间混合。

或者你有show.id而不是show.day所以看看你的表中有什么,如果是的话

通过show.day

替换您的sql show.id

编辑:

     $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 ';