select - subquery in mysql case when clause -
select - subquery in mysql case when clause -
the next query works in oracle, in mysql produces error:
select id_propuestas, titulo, descripcion, id_usuario, votos, case when(select true votospropuestos id_propuesta = propuestas.id_propuesta , id_usuario = 1) true else false end votada propuestas
error message:
error code: 1054. unknown column 'propuestas.id_propuesta'
in 'where clause'
can explain problem and/or suggest solution?
you can't set subquery within case
, query can reworked accomplish intention using exists()
function:
select id_propuestas, titulo, descripcion, id_usuario, votos, exists(select * votospropuestos id_propuesta = propuestas.id_propuesta , id_usuario = 1) votada propuestas
the exists()
function returns true
if rows returned subquery, false
otherwise.
it far more efficient utilize join:
select p.id_propuestas, p.titulo, p.descripcion, p.id_usuario, p.votos, max(v.id_propuesta) not null votada propuestas p left bring together votospropuestos v on v.id_propuesta = p.id_propuesta , v.id_usuario = 1 grouping 1, 2, 3, 4, 5
mysql select
Comments
Post a Comment