2012-11-09 25 views
3

我想創建一個統計隊伍的名單,所以我用2個功能,每個包含2個不同的數據庫查詢:錯誤在MySQL查詢

protected function getListQueryweqw() { 
    // Create a new query object. 
    $db = $this->getDbo(); 
    $query = $db->getQuery(true); 
    $query_string = ''; 
    $query_string .= 'a.*, COUNT(w.id) AS played_games, SUM(w.team_goals) AS goals,'; 
    $query_string .= "COUNT(w.match_status = 'draw') AS draw,"; 
    $query_string .= "COUNT(w.match_status = 'win') AS win,"; 
    $query_string .= "COUNT(w.match_status = 'lose') AS lose,"; 
    $query_string .= "SUM(w.team_points) AS points, SUM(w.goal_lost) AS goal_lost, w.*"; 

    // Select the required fields from the table. 
    $query->select($query_string); 
    $query->from('`#__footsal_teams` AS a'); 
    $query->join('LEFT', '`#__footsal_resaults` AS w on w.id_team = a.id'); 

    return $query; 
} 

protected function getListQuery() { 
    // Create a new query object. 
    $db = $this->getDbo(); 
    $query = $db->getQuery(true); 
    $query_string = ''; 
    $query_string .= 'a.*, COUNT(SELECT id FROM `#__footsal_resaults` WHERE id_team = a.id) AS played_games, '; 
    $query_string .= "SUM(SELECT team_goals FROM `#__footsal_resaults` WHERE id_team = a.id) AS goals,"; 
    $query_string .= "COUNT(SELECT id FROM `#__footsal_resaults` WHERE match_status = 'draw') AS draw,"; 
    $query_string .= "COUNT(SELECT id FROM `#__footsal_resaults` WHERE match_status = 'win') AS win,"; 
    $query_string .= "COUNT(SELECT id FROM `#__footsal_resaults` WHERE match_status = 'lose') AS lose,"; 
    $query_string .= "SUM(SELECT team_points FROM `#__footsal_resaults` WHERE id_team = a.id) AS points, SUM(SELECT goal_lost FROM `#__footsal_resaults` WHERE id_team = a.id) AS goal_lost"; 

    // Select the required fields from the table. 
    $query->select($query_string); 
    $query->from('`#__footsal_teams` AS a'); 

    return $query; 
} 

然而無論是查詢似乎工作和啓動我得到的錯誤是:

JDatabaseMySQLi::query: 1064 ...... 

有人可以告訴我我哪裏出錯了嗎?

+0

什麼是 「不工作」? – RandomSeed

+0

JDatabaseMySQLi :: query:1064 ...錯誤開始 – Viszman

回答

1

你的東西沿着這條線,只做了一些調整。

protected function getListQueryweqw() { 
    $db = JFactory::getDBO(); 
    $query = $db->getQuery(true); 
    $query_string = ''; 
    $query_string .= 'a.*, COUNT(w.id) AS played_games, SUM(w.team_goals) AS goals,'; 
    $query_string .= "COUNT(w.match_status = 'draw') AS draw,"; 
    $query_string .= "COUNT(w.match_status = 'win') AS win,"; 
    $query_string .= "COUNT(w.match_status = 'lose') AS lose,"; 
    $query_string .= "SUM(w.team_points) AS points, SUM(w.goal_lost) AS goal_lost, w.*"; 

    $query->select($query_string); 
    $query->from('#__footsal_teams AS a'); 
    $query->join('LEFT', '#__footsal_resaults AS w on w.id_team = a.id'); 


    return $db->setQuery($query); 
} 

protected function getListQuery() { 
    $db = JFactory::getDBO(); 
    $query = $db->getQuery(true); 
    $query_string = ''; 
    $query_string .= 'a.*, COUNT(SELECT id FROM #__footsal_resaults WHERE id_team = a.id) AS played_games, '; 
    $query_string .= "SUM(SELECT team_goals FROM #__footsal_resaults WHERE id_team = a.id) AS goals,"; 
    $query_string .= "COUNT(SELECT id FROM #__footsal_resaults WHERE match_status = 'draw') AS draw,"; 
    $query_string .= "COUNT(SELECT id FROM #__footsal_resaults WHERE match_status = 'win') AS win,"; 
    $query_string .= "COUNT(SELECT id FROM #__footsal_resaults WHERE match_status = 'lose') AS lose,"; 
    $query_string .= "SUM(SELECT team_points FROM #__footsal_resaults WHERE id_team = a.id) AS points, SUM(SELECT goal_lost FROM #__footsal_resaults WHERE id_team = a.id) AS goal_lost"; 

    $query->select($query_string); 
    $query->from('#__footsal_teams AS a'); 

    return $db->setQuery($query); 
} 
0

確定我解析器它

protected function getListQuery() { 
    // Create a new query object. 
    $db = $this->getDbo(); 
    $query = $db->getQuery(true); 
    $query_string = ''; 
    $query_string .= 'a.*, (SELECT COUNT(id) FROM `#__footsal_resaults` WHERE id_team = a.id) AS played_games, '; 
    $query_string .= "(SELECT SUM(team_goals) FROM `#__footsal_resaults` WHERE id_team = a.id) AS goals,"; 
    $query_string .= "(SELECT COUNT(id) FROM `#__footsal_resaults` WHERE match_status = 'draw' AND id_team = a.id) AS draw,"; 
    $query_string .= "(SELECT COUNT(id) FROM `#__footsal_resaults` WHERE match_status = 'win' AND id_team = a.id) AS win,"; 
    $query_string .= "(SELECT COUNT(id) FROM `#__footsal_resaults` WHERE match_status = 'lose' AND id_team = a.id) AS lose,"; 
    $query_string .= "(SELECT SUM(team_points) FROM `#__footsal_resaults` WHERE id_team = a.id) AS points, (SELECT SUM(goal_lost) FROM `#__footsal_resaults` WHERE id_team = a.id) AS goal_lost"; 

    // Select the required fields from the table. 
    $query->select($query_string); 
    $query->from('`#__footsal_teams` AS a'); 

    return $query; 
}