ORDER BY多个数据(多对多)不起作用

时间:2014-01-19 07:06:46

标签: sql doctrine-orm

我有很多很有价值的桌子。

一个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不起作用?

我该怎么做?

0 个答案:

没有答案