无法从2个表中检索没有结果的数据

时间:2014-02-22 12:26:23

标签: php mysql opencart

我有2张桌子: competition_winners我在那里存储赢得比赛和桌面比赛的人,我在那里存储有关实际比赛的信息。

所以我正在检索获胜者和比赛的结束日期。但是负责日期的查询并没有返回任何内容。我正在使用Opencart,因此在模型中执行查询。这是它的代码。

public function getWinnersByDate($date) {
                $qr = "SELECT  competition_id FROM " . DB_PREFIX . "competition_winners";
//$fcid = $qr->row['competition_id'];
        $query = "SELECT cometition_id,end_date FROM " . DB_PREFIX . "competition WHERE competition_id = '" .$qr->row['competition_id'] . "'"; 


        return $query->row;

查询在PhpMyadmin中工作正常。我错过了什么或做错了什么?

1 个答案:

答案 0 :(得分:0)

您应该使用JOIN(在Google上搜索关于SQL JOIN),而不是在两个查询中运行此操作。

public function getWinnersByDate($date) {
    $qr = $this->db->query("
        SELECT cw.competition_id, c.end_date 
        FROM " . DB_PREFIX . "competition_winners cw
        LEFT JOIN " . DB_PREFIX . "competition c ON c.competition_id = cw.competition_id
    "); 

     return $query->rows;
}

我不知道您的数据库结构,但上面的查询在它的当前状态中没有意义 - 我相信您想使用提供的WHERE参数添加一些$date子句并且您想要从competition_winners表中选择更多信息,所以请自己动手或向我们提供有关您问题的更多详细信息。