2017-08-26 3 views
0

と結合SQLクエリ次スリックは、私が構築サブクエリ

SELECT 
v.uuid, d.start_time, d.end_time 
FROM 
visits v 
    INNER JOIN 
    visit_dates d ON v.uuid = d.visit_uuid 
WHERE 
v.study_environment_site_uuid = (SELECT 
    study_environment_site_uuid 
    FROM 
    visits 
    WHERE 
    uuid = 'e4663612-39f9-4c43-bd86-c4c5a9235b03') 
AND v.uuid != 'e4663612-39f9-4c43-bd86-c4c5a9235b03' 
AND d.start_time < (SELECT start_time FROM visit_dates WHERE visit_uuid = 'e4663612-39f9-4c43-bd86-c4c5a9235b03' ORDER BY start_time LIMIT 1) 
ORDER BY d.start_time; 

は今スリック

(for { 
    vSes <- visits.filter(_.uuid === uuid) 
    vDate <- visitDates.filter(_.visitUuid === uuid).sortBy(_.startTime).take(1) 
    (v, d) <- visits join visitDates on (_.uuid === _.visitUuid) 
    if (v.uuid =!= uuid && v.studyEnvironmentSiteUuid === vSes.studyEnvironmentSiteUuid && d.startTime < vDate.startTime) 
} yield (v.uuid)).result.map(_.headOption) 

にそれを反映しようとしている。しかし、これは間違った結果を生成しました。私はスリック3.2.1 次のSQLを使用していますと、

SELECT 
    x2.`uuid`, 
    x7.start_time 
FROM 
    `visits` x3, 
    (SELECT 
     `visit_uuid` AS x4, `start_time` AS x5 
    FROM 
     `visit_dates` 
    WHERE 
     `visit_uuid` = ? 
    ORDER BY `start_time` 
    LIMIT 1) x6, 
    `visits` x2, 
    `visit_dates` x7 
WHERE 
    ((x2.`uuid` = x7.`visit_uuid`) 
     AND ((NOT (x2.`uuid` = ?)) 
     AND (x7.`start_time` < x6.x5))) 
     AND ((x3.`uuid` = ?) 
     AND (x2.`study_environment_site_uuid` = x3.`study_environment_site_uuid`)); 

生成されたクエリが参加しないで、代わりに手動でクエリが生成する1の複数の行を返す生成されます。

アイデア/ポインターはありますか?

答えて

0

答えはまだ存在しないので、私は問題

for { 
    (v, d) <- visits join visitDates on (_.uuid === _.visitUuid) 
    vSes <- visits.filter(_.uuid === uuid) 
    vDate <- visitDates.filter(_.visitUuid === uuid).sortBy(_.startTime).take(1) 
    if v.uuid =!= uuid && v.studyEnvironmentSiteUuid === vSes.studyEnvironmentSiteUuid && d.startTime < vDate.startTime 
} yield (v.uuid, d.startTime)).result.map { 
    case [email protected](_ +: _) => Some(results.maxBy(_._2)._1) 
    case _ => None 
} 
のための私の回避策を掲載します
関連する問題