【发布时间】:2013-10-17 07:11:10
【问题描述】:
我转了好几圈,不太明白 DQL 中的“加入”如何,我想用 MySQL 在 Symfony 项目中加入两个表,我已经做出了我想翻译的决定,但不是非常了解如何执行此 JOIN,最让我印象深刻的是我不知道在哪里告诉表我要进行 JOIN,但仅在我看到的示例中仅显示单个表调用。
这是我的 MySQL 代码:
SELECT t1.id, AVG(t2.valoracion)
FROM video AS t1, valoracion_video AS t2
WHERE t1.id=t2.video_id
GROUP BY t2.video_id
ORDER BY t2.valoracion DESC;
这是实体:)
视频
class Video
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="nombre", type="string", length=255, nullable=false)
*/
private $nombre;
/**
* @var string
*
* @ORM\Column(name="slug", type="string", length=255, nullable=false)
*/
private $slug;
/**
* @var \DateTime
*
* @ORM\Column(name="fecha_publicacion", type="datetime", nullable=false)
*/
private $fechaPublicacion;
/**
* @var \Categoria
*
* @ORM\ManyToOne(targetEntity="Categoria", inversedBy="video")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="categoria_id", referencedColumnName="id")
* })
*/
private $categoria;
/**
* @var \Proveedor
*
* @ORM\ManyToOne(targetEntity="\odoc\ProveedorBundle\Entity\Proveedor", inversedBy="video")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="proveedor_id", referencedColumnName="id")
* })
*/
private $proveedor;
/**
* @ORM\OneToMany(targetEntity="ValoracionVideo", mappedBy="video")
*/
protected $valoracionvideo;
价值
class ValoracionVideo
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var integer
*
* @ORM\Column(name="valoracion", type="integer", nullable=false)
*/
private $valoracion;
/**
* @var \DateTime
*
* @ORM\Column(name="fecha", type="datetime", nullable=false)
*/
private $fecha;
/**
* @var \Video
*
* @ORM\ManyToOne(targetEntity="Video", inversedBy="valoracion_video")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="video_id", referencedColumnName="id")
* })
*/
private $video;
/**
* Get id
*
* @return integer
*/
【问题讨论】:
-
您可能应该检查
Doctrine文档:docs.doctrine-project.org/en/latest -
花了几天时间,大约 3 天试图理解你命名的这个文档 :)
-
好的,那么,请告诉我们你到目前为止写了哪些实体......
-
现在您可以看到实体
标签: php database symfony doctrine dql