Php 连接查询
我有两个函数,我想把它变成一个 职能1Php 连接查询,php,mysql,sql,Php,Mysql,Sql,我有两个函数,我想把它变成一个 职能1 public function getAlliancesList($pageIndex, $pageSize) { return $this->provider->fetchResultSet("SELECT a.id, a.name, a.player_count, a.rating FROM p_alliances a ORDER BY a.rating DESC, a.player_count DESC, a.id
public function getAlliancesList($pageIndex, $pageSize)
{
return $this->provider->fetchResultSet("SELECT a.id, a.name, a.player_count, a.rating FROM p_alliances a ORDER BY a.rating DESC, a.player_count DESC, a.id ASC LIMIT %s,%s", array($pageIndex * $pageSize, $pageSize));
}
职能2
public function getAllianceAverage($allianceId)
{
$row = $this->provider->fetchRow("SELECT AVG(p.total_people_count) as average FROM p_players p WHERE p.alliance_id = '%s'", array($allianceId));
return intval($row['average']);
}
基本上,我想将函数2连接到函数1中,因此我不需要2个查询,然后我可以调用模板文件上的一个函数,如$this->datalist->row['average']
,如果可能的话
我已经尝试了很多方法让这两个查询一起工作,但都没有用,所以任何帮助都会很好
编辑:
我想要的是在getAllianceList
函数中包含联盟id
到目前为止,我们是这样尝试的:
public function getAlliancesList($pageIndex, $pageSize)
{
return $this->provider->fetchResultSet("SELECT *
FROM `p_alliances`
JOIN `p_players`
ON `p_players`.`id` = `p_alliances`.`id` LIMIT %s,%s", array($pageIndex * $pageSize, $pageSize));
}
如果可能有0个玩家,您可能希望将
内部连接
更改为左连接
,但这可能会影响mysql的性能。请提供更多详细信息-表的结构是什么,它们是如何链接的?你能告诉我们你试过什么吗?(这个->提供者是什么?);不知何故,这些查询似乎做了完全不同的事情(一个返回一行,另一个返回几行)-您的目标是什么,为什么要组合它们?如果不让我知道,我会尝试帮助。对我来说还没有意义。没有那么丰富的经验这就是我需要帮助的原因:)我需要先查看您的数据库结构,然后才能修改表或编写查询工作,谢谢您的正常、简短和清晰的回答。这就是我喜欢的,再次谢谢。
SELECT
a.id,
a.name,
a.player_count,
a.rating,
AVG(p.total_people_count) AS `average`
FROM p_alliances a
INNER JOIN p_players p ON (p.alliance_id = a.id)
GROUP BY a.id
ORDER BY a.rating DESC, a.player_count DESC, a.id ASC
LIMIT %s,%s