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

Popular posts from this blog

xslt - DocBook 5 to PDF transform failing with error: "fo:flow" is missing child elements. Required content model: marker* -

mediawiki - How do I insert tables inside infoboxes on Wikia pages? -

Local Service User Logged into Windows -