我有很多很有价值的桌子。
一个TagData行有多个VideoData ID。
class TagData
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string",unique=false,nullable=false)
*/
private $name;
/**
* @ORM\ManyToMany(targetEntity="VideoData", mappedBy="tagIds", cascade={"persist"})
*/
private $videoIds;
/**
* Get videos
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getVideos()
{
return $this->videos;
}
和VideoData表
class VideoData implements ItemInterface
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
*
* @ORM\ManyToMany(targetEntity="Acme\TopBundle\Entity\TagData",inversedBy="videos")
* @ORM\JoinTable(name="tag_video")
* )
*/
private $tagIds;
/**
* @var \DateTime
*
* @ORM\Column(name="updatedAt", type="datetime")
*/
private $updatedAt;
我想做的是:
获取属于一个TagData行的VideoIds,具有此条件
1)按'updatedAt'排序
目前,mysql如下所示。
$query = $em->createQuery(
"SELECT t FROM TagData t JOIN t.videoIds v WHERE
t.id = {$id} order by v.updatedAt");
然后通过
选择videoIds$videos = $query->getVideoIds(); // but this data is not sorted by updatedAt
为什么这个ORDER BY不起作用?
我该怎么做?