每行有多个子查询的Mysql查询

标签 mysql sql

我有两个表需要从中提取数据。第一个表是 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/

相关文章:

MySQL插入带日期的行

php - 如何从 mysql 数据库的行中插入多个图像?

sql - 基于分手的日期拆分

mysql - 选择多次出现的所有行

php - 数据库架构——一大或多小

mysql - SQL错误: duplicate entry for value'0' PRIMARY

sql - 我可以为多个列添加别名吗?如何?

mysql - 在 node.js - mysql 中使用 where 子句选择查询?

SQL多列分组在一行中

mysql - 过滤器的最佳数据库系统