Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 连接查询_Php_Mysql_Sql - Fatal编程技术网

Php 连接查询

Php 连接查询,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

我有两个函数,我想把它变成一个

职能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 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