1

私はそれを相談します:

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 列を含める必要があります

コンサルティングとして、しかし作成された列の降順で

4

2 に答える 2

1

IN複数の列を返す句で副選択を使用しています。このような副選択は、比較に使用される1つの列のみを返すことができます。IN()

and signos_sintomas.created in (select 
            signos_sintomas.created,consultas.created
                    ^^^--field #1       ^---field #2
        from

IN()複数の列を返す場合、DB サーバーは比較にどの列を使用する必要があるかを知る方法がありません。

于 2013-04-30T17:19:48.353 に答える
0

これを変える

   and signos_sintomas.created in (select 
        signos_sintomas.created,consultas.created

   and signos_sintomas.created in (select 
        signos_sintomas.created

2 列ではなく、1 列だけを選択します。

于 2013-04-30T17:19:33.547 に答える