0
$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 的活动记录也是如此。

你们中有人遇到过这种问题吗?

4

1 回答 1

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.day和之间date.id

或者你可能show.id没有show.day那么看你桌子上有什么,如果是的话

在你的 sql 中替换show.dayshow.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 ';
于 2012-12-06T20:00:46.267 回答