【发布时间】:2017-06-20 17:23:24
【问题描述】:
我的 SQL(dql) 请求有问题, 我有一个带有 Books(Media) 的表格,一个带有类别的表格,以及一个将两者关联的表格:CategoryAffiliation(一本书可以有多个类别)
在客户端,我可以选择通过检查多个类别来搜索书籍。然后客户端向服务器发送一个类别数组,他必须返回至少有一个类别的书籍。
$books = [];
if (isset($data['categories'])) {
foreach ($data['categories'] as $key => $value){
$query = $em->createQuery("SELECT m
FROM AppBundle:Media m, AppBundle:Category c, AppBundle:CategoryAffiliation mc
WHERE m.idMedia = mc.idMedia
AND mc.idCategory = :key
GROUP by m.idMedia"
)->setParameter('key',$key);
$result = $query->getResult();
foreach ($result as $book) {
array_push($books, $book);
}
}
}
这是我现在的解决方案,但这不是很好,我无法按结果订购.. 我收到一组重复的书籍,然后在客户端合并它们以删除重复的书籍。
我正在寻找一种方法来一次获取所有数据的单个请求
谢谢
【问题讨论】:
标签: php mysql sql symfony doctrine-orm