我有两个表需要从中提取数据。第一个表是 applications,第二个是 verification_status。每个应用程序有 20 个步骤,verification_status 包含该步骤完成的日期。我正在尝试从多个特定步骤中提取应用程序以及完成日期。
基本上我想要的是一个包含所有应用程序数据的行,以及来自基于 applications_id 和 verification_step_id 匹配的特定验证状态行的日期。
我尝试了这个,但我收到一条错误消息“'where 子句'中的未知列'applications.id'”
当我取出子查询时它工作正常。
SELECT * FROM applications,
(SELECT date FROM verification_status WHERE application_id = applications.id AND verification_step_id = 1) as steponedate
LEFT JOIN application_details ON application_details.application_id = applications.id
WHERE application_details.application_status_id != 1 AND application_details.application_status_id != 2
最佳答案
试一试:
SELECT
a.*,
ad.*,
vs.date as steponedate
FROM applications a
LEFT JOIN verification_status vs
ON vs.application_id = a.id
AND vs.verification_step_id = 1
LEFT JOIN application_details ad
ON ad.application_id = a.id
WHERE ad.application_status_id != 1
AND ad.application_status_id != 2;
关于每行有多个子查询的Mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18872824/