Mysql 如何在zend2中编写复杂的sql查询
我想在zend framework 2中编写如下所示的mySQL查询 如何在zend Db select约定中转换它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
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.”“;”但这绝对是我不喜欢的。