2013-05-01 2 views
1
select 
    consultas.id as a, 
    consultas.clasificacion as cl, 
    consultas.paciente_id as b, 
    consultas.created,imc_kg_m2 as im 
from 
    consultas 
join 
    signos_sintomas 
    on 
     signos_sintomas.consulta_id = consultas.id 
    where paciente_id in 
    (select pacientes.id from pacientes where pacientes.id < 30 order by pacientes.id desc) 
    and 
     consultas.created in 
     (select consultas.created from consultas order by consultas.created asc ) 
    and 
     imc_kg_m2 is not null 

    ; 



+-----+----+----+---------------------+------+ 
    | a | cl | b | created    | im | 
    +-----+----+----+---------------------+------+ 
    | 198 | 1 | 1 | 2012-07-25 00:00:00 | 25.6 | 
    | 2 | 1 | 2 | 2012-05-30 00:00:00 | 25.5 | 
    | 2 | 1 | 2 | 2012-05-30 00:00:00 | 25.5 | 
    | 3 | 1 | 3 | 2012-05-30 00:00:00 | 21.1 | 
    | 3 | 1 | 3 | 2012-05-30 00:00:00 | 21.3 | 
    | 579 | 2 | 4 | 2012-10-03 00:00:00 | 22.9 | 
    | 579 | 2 | 4 | 2012-10-03 00:00:00 | 22.9 | 
    | 127 | 1 | 5 | 2012-07-16 00:00:00 | 28.7 | 
    | 127 | 1 | 5 | 2012-07-16 00:00:00 | 28.9 | 
    | 127 | 1 | 5 | 2012-07-16 00:00:00 | 28.9 | 
    | 498 | 1 | 6 | 2012-09-19 00:00:00 | 29.7 | 
    | 498 | 1 | 6 | 2012-09-19 00:00:00 | 29.7 | 
    | 200 | 1 | 7 | 2012-07-25 00:00:00 | 0 | 
    | 149 | 1 | 8 | 2012-07-18 00:00:00 | 23.6 | 
    | 149 | 1 | 8 | 2012-07-18 00:00:00 | 23.6 | 
    | 4 | 1 | 9 | 2012-06-16 00:00:00 | 0 | 
    | 4 | 1 | 9 | 2012-06-16 00:00:00 | 24.9 | 
    | 5 | 2 | 10 | 2012-06-26 00:00:00 | 24.9 | 
    | 7 | 2 | 11 | 2012-06-26 00:00:00 | 25 | 
    | 6 | 2 | 12 | 2012-06-26 00:00:00 | 24.8 | 
    | 648 | 2 | 13 | 2012-10-22 00:00:00 | 27.5 | 
    | 8 | 2 | 14 | 2012-06-26 00:00:00 | 34 | 
    | 8 | 2 | 14 | 2012-06-26 00:00:00 | 32.8 | 
    | 9 | 2 | 15 | 2012-06-26 00:00:00 | 32.8 | 
    | 9 | 2 | 15 | 2012-06-26 00:00:00 | 32.8 | 
    | 9 | 2 | 15 | 2012-06-26 00:00:00 | 32.2 | 
    | 10 | 2 | 16 | 2012-06-26 00:00:00 | 29.8 | 
    | 10 | 2 | 16 | 2012-06-26 00:00:00 | 30.4 | 
    | 11 | 2 | 17 | 2012-06-26 00:00:00 | 28.1 | 
    | 11 | 2 | 17 | 2012-06-26 00:00:00 | 28.1 | 
    | 156 | 2 | 19 | 2012-07-18 00:00:00 | 29.5 | 
    | 12 | 2 | 20 | 2012-06-26 00:00:00 | 0 | 
    | 12 | 2 | 20 | 2012-06-26 00:00:00 | 0 | 
    | 12 | 2 | 20 | 2012-06-26 00:00:00 | 0 | 
    | 13 | 1 | 21 | 2012-06-26 00:00:00 | 29 | 
    | 13 | 1 | 21 | 2012-06-26 00:00:00 | 29 | 
    | 14 | 3 | 22 | 2012-06-26 00:00:00 | 32.5 | 
    | 15 | 2 | 23 | 2012-06-26 00:00:00 | 30.4 | 
    | 16 | 2 | 24 | 2012-06-26 00:00:00 | 0 | 
    | 17 | 11 | 25 | 2012-06-26 00:00:00 | 28 | 
    | 18 | 2 | 26 | 2012-06-26 00:00:00 | 23.9 | 
    | 19 | 1 | 27 | 2012-06-27 00:00:00 | 32 | 
    | 19 | 1 | 27 | 2012-06-27 00:00:00 | 32 | 
    | 19 | 1 | 27 | 2012-06-27 00:00:00 | 34.4 | 
    | 21 | 1 | 28 | 2012-06-27 00:00:00 | 29.1 | 
    | 21 | 1 | 28 | 2012-06-27 00:00:00 | 29.1 | 
    | 23 | 1 | 29 | 2012-06-27 00:00:00 | 26.8 | 
    | 23 | 1 | 29 | 2012-06-27 00:00:00 | 26.3 | 
    +-----+----+----+---------------------+------+ 
내가 한계를 만들기 위해 노력하고

하지만 말에 작성하여 SQL 위해 쿼리 ERROR 1235 (42000) : MySQL의이 버전은 아직 'LIMIT & IN/ALL을 지원하지 않습니다 내가 업데이트 enfermedades 최근 imc_kg_m2 필요 해요로/ANY/SOME 서브 쿼리 ' 내가 쿼리를 자연 i'tsSQL : 어떻게이 경우

update pacientes 
     join 
    enfermedades 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 
    bmi = signos_sintomas.imc_kg_m2, 
    enfermedades.promedio_presion_sistolica = ((pa_de_pie_izquierda + pa_sentado_izquierda)/2), 
    enfermedades.microalbuminuria = 0, 
    enfermedades.macroalbuminuria = 0, 
    enfermedades.fibrilacion = 0, 
    enfermedades.ecv = 0, 
    enfermedades.duracion = 15, 
    enfermedades.antiht = 0, 
    enfermedades.diabetes = 1 
where 
    enfermedades.riesgo_diabetes_mellitus = 1 
     and pacientes.situacion = 0 
     and riesgo_diabetes_dano_organo_blanco = 0 
     and signos_sintomas.created in (select 
      signos_sintomas.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); 

값 null을 만들어 하나 개의 imc_kg_m2 값하지만 가장 최근의 필요

+------+-----+------+------+------+------+------+------+------+------+ 
| bmi | p | d1 | d2 | d3 | ecv | m1 | m2 | f | pa | 
+------+-----+------+------+------+------+------+------+------+------+ 
| NULL | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 132 | 
| NULL | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 105 | 
| NULL | 30 | 0 | 0 | 0 | NULL | NULL | 0 | NULL | 160 | 
| NULL | 153 | 0 | 0 | 0 | NULL | NULL | 0 | NULL | 160 | 
| NULL | 175 | 0 | 0 | 0 | NULL | NULL | 0 | NULL | 160 | 
| NULL | 343 | 0 | 0 | 0 | NULL | NULL | 0 | NULL | 160 | 
| NULL | 520 | 0 | 0 | 0 | NULL | NULL | 0 | NULL | 160 | 
| NULL | 867 | 0 | 0 | 0 | NULL | NULL | 0 | NULL | 160 | 
+------+-----+------+------+------+------+------+------+------+------+ 
,536,

나는 그러한 상담이 내 문제, 의존성 및 현재 존재하는 관계에 대한 해결책이 아니라고 생각하기 시작합니다. 다른 방식으로 변경하면 모델과 뷰 모델에 영향을 미칠 수 있습니다.

답변

0

나는 완전히 목표를 확실히 이해하지,하지만 난 하위 쿼리를 별칭 오류를 해결하려면 이동 ...

select 
consultas.id as a, 
consultas.clasificacion as cl, 
consultas.paciente_id as b, 
consultas.created, 
imc_kg_m2 as im 
from consultas 
join signos_sintomas on signos_sintomas.consulta_id = consultas.id 
join (select pacientes.id from pacientes where pacientes.id < 30) p on consultas.paciente_id = p.id 
where imc_kg_m2 = (select imc_kg_m2 from consultas where created = (select max(created) from consultas where imc_kg_m2 is not null)); 

있었다 대신 그들에 합류했다. 나는 왜 그것이 거기에 있었는지 알 수 없기 때문에 나는 하나를 제거했다. 나는 또한 당신이 요구하고있는 것과 같은 것을하기 위해 where을 추가했다. 그것이 당신이 원하는 것을하지 않으면 논평.