我有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中工作正常。我错过了什么或做错了什么?
答案 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
表中选择更多信息,所以请自己动手或向我们提供有关您问题的更多详细信息。