我咨询一下:
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);
说
错误1241(21000):操作数应包含1列
作为参考,但按创建列的降序排列
最佳答案
您在返回多列的IN
子句中使用子select。这样的子选择只能返回一列,用于IN()
比较:
and signos_sintomas.created in (select
signos_sintomas.created,consultas.created
^^^--field #1 ^---field #2
from
如果返回多个列,DB服务器无法知道应该使用哪个列进行
IN()
比较。