[英]how update in sql in a join and order by
mi consult it's: mi咨询是:
update enfermedades
join
pacientes ON pacientes.id = enfermedades.paciente_id
join
consultas ON consultas.paciente_id = pacientes.id
join
signos_sintomas ON signos_sintomas.consulta_id = consultas.id
set
enfermedades.diabetes = 1,
bmi = signos_sintomas.imc_kg_m2,
promedio_presion_sistolica = ((pa_de_pie_izquierda + pa_sentado_izquierda) / 2),
microalbuminuria = 0,
macroalbuminuria = 0,
fibrilacion = 0,
ecv = 0,
duracion = 15,
antiht = 0,
diabetes = 0
where
enfermedades.riesgo_diabetes_mellitus = 0
and pacientes.situacion = 0
and riesgo_diabetes_dano_organo_blanco = 0
and signos_sintomas.created in (select
signos_sintomas.created,consultas.created
from
signos_sintomas
join
consultas ON consultas.id = signos_sintomas.consulta_id
join
pacientes ON pacientes.id = consultas.paciente_id
where
pacientes.id = pacientes.id
order by signos_sintomas.created , consultas.created desc);
say 说
ERROR 1241 (21000): Operand should contain 1 column(s) 错误1241(21000):操作数应包含1列
as consulting but with that descending order for columns created 作为咨询,但对于创建的列按降序排列
You're using a sub-select in an IN
clause that's returning multiple columns. 您正在返回多个列的
IN
子句中使用子选择。 Such a subselect can return only ONE column, which is used for the IN()
comparison: 这样的子选择只能返回ONE列,该列用于
IN()
比较:
and signos_sintomas.created in (select
signos_sintomas.created,consultas.created
^^^--field #1 ^---field #2
from
if you return multiple columns, the DB server has no way of knowing WHICH column should be used for the IN()
comparison. 如果返回多个列,则数据库服务器无法知道应该将WHICH列用于
IN()
比较。
change this 改变这个
and signos_sintomas.created in (select
signos_sintomas.created,consultas.created
to 至
and signos_sintomas.created in (select
signos_sintomas.created
yould select just one column , not two . 您只能选择一列,而不是两列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.