Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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
Mysql 如何在zend2中编写复杂的sql查询_Mysql_Zend Framework2 - Fatal编程技术网

Mysql 如何在zend2中编写复杂的sql查询

Mysql 如何在zend2中编写复杂的sql查询,mysql,zend-framework2,Mysql,Zend Framework2,我想在zend framework 2中编写如下所示的mySQL查询 如何在zend Db select约定中转换它 SELECT profiles.*, user.email, user.first_name, user.last_name, portfilio_images.profileImage, images.url AS imgurl FROM profiles INNER JOIN user ON user.use

我想在zend framework 2中编写如下所示的mySQL查询

如何在zend Db select约定中转换它

    SELECT profiles.*, 
    user.email,
    user.first_name,
    user.last_name,
    portfilio_images.profileImage,
    images.url AS imgurl
    FROM profiles

    INNER JOIN user ON user.user_id = profiles.ownerId

    LEFT JOIN (
        SELECT *
        FROM portfilio_images
        WHERE portfilio_images.profileImage = '1'
    ) as portfilio_images ON portfilio_images.profileId = profiles.id

    LEFT JOIN images ON images.id = portfilio_images.imageId

    WHERE profiles.ownerId != '4' AND (profiles.name LIKE '%a%' OR user.first_name LIKE '%a%' OR user.last_name LIKE '%a%')

    GROUP BY user.user_id

您可以始终只执行原始查询:

$sql = "SELECT * FROM test";

$statement = $abAdapter->query($sql);
$result = $statement->execute();

$resultSet = new ResultSet;
$resultSet->initialize($result);

return $resultSet;
或者如果您想添加一些参数

$sql = "SELECT * FROM test where col = ?";

$statement = $dbAdapter->query($sql);
$result = $statement->execute(array(99));

$resultSet = new ResultSet;
$resultSet->initialize($result);

return $resultSet;

您可以始终只执行原始查询:

$sql = "SELECT * FROM test";

$statement = $abAdapter->query($sql);
$result = $statement->execute();

$resultSet = new ResultSet;
$resultSet->initialize($result);

return $resultSet;
或者如果您想添加一些参数

$sql = "SELECT * FROM test where col = ?";

$statement = $dbAdapter->query($sql);
$result = $statement->execute(array(99));

$resultSet = new ResultSet;
$resultSet->initialize($result);

return $resultSet;

您还可以使用Zend\Db\Sql\Select,它允许您以编程方式构建复杂查询。请参阅此处的文档:


您还可以使用Zend\Db\Sql\Select,它允许您以编程方式构建复杂的查询。请参阅此处的文档:


我写了一篇关于连接的文章,也许会对你有所帮助:谢谢你链接Diemuzi,实际上在这个查询中,我遇到了两个困难。第一个是它有一个带条件的innser select查询,第二个是带括号的place条件。这对我来说很复杂,因为我找不到用括号设置条件,所以我临时使用“$where[]=”(profiles.name像“%”“%$search.”“%”或user.first_name像“%”“%$search.”“%”或user.last_name像“%”“%$search.”“;”但这绝对是我不喜欢的。我写了一篇关于连接的文章,也许它会帮助你:谢谢你链接迭木子,其实在这个查询中,我遇到了两个困难。第一个是它有一个带条件的innser select查询,第二个是带括号的place条件。这对我来说很复杂,因为我找不到用括号设置条件,所以我临时使用“$where[]=”(profiles.name像“%”“%$search.”“%”或user.first_name像“%”“%$search.”“%”或user.last_name像“%”“%$search.”“;”但这绝对是我不喜欢的。