Convert SQL to DQL

1

Oops, I need to convert a SQL in DQL from Doctrine 2 if someone can help me.

SELECT 
produtos.id, 
produtos.categoria_id, 
produtos.nome, 
produtos.descricao, 
produtos.valor, 
(SELECT group_concat(nome) 
FROM tags 
INNER JOIN produtos_tags ON rodutos_tags.tag_id = tags.id 
WHERE produtos.id= produtos_tags.produto_id) as teste 
FROM produtos 
INNER JOIN categorias ON produtos.categoria_id = categorias.id 
INNER JOIN produtos_tags ON produtos_tags.produto_id = produtos.id 
INNER JOIN tags ON produtos_tags.tag_id = tags.id 
GROUP BY produto_id
    
asked by anonymous 26.01.2015 / 18:57

1 answer

0

In order to build a DQL, you need to know the organization of the entities in your application and the relationship between them - whether it is OneToMany , ManyToMany , ManyToOne or OneToOne . I will suggest an answer but it is likely that I am wrong. In that case, try to provide the data I mentioned above. :)

See if it serves:

SELECT 
    p.id, 
    p.categoria, 
    p.nome, 
    p.descricao, 
    p.valor, 
    (
        SELECT group_concat(t.nome) 
        FROM Tags t2
        JOIN t.produtos p2
        WHERE p2.id = p.id
    ) as teste 
FROM Produto p
JOIN p.categorias c
JOIN p.tags t
GROUP BY p.id
    
26.01.2015 / 23:16