gpt4 book ai didi

php - 在 DQL 中加入

转载 作者:搜寻专家 更新时间:2023-10-31 21:11:02 27 4
gpt4 key购买 nike

我转了好几圈,不太明白 DQL 中的“Join”是如何实现的,我想用它来连接 Symfony 项目中的两个表,MySQL 做出了我想翻译的决定,但没有非常了解如何执行此 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
*/

最佳答案

试试下面的 DQL(不过,我不确定它是否有效)。

另外请记住首先将 DQL 视为对象,而不是 SQL。这意味着使用实体类和属性名称而不是表和列名称。

SELECT t1.id, AVG(t2.valoracion) valoracion_media
FROM My\Entity\ValoracionVideo t2
JOIN t2.video t1
GROUP BY t1.id
ORDER BY valoracion_media DESC;

关于php - 在 DQL 中加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19420385/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com