SQL子查询未获取正确的数据
我刚开始一些编程类,我正在编写CRUD操作来获取一些数据。每当下面的子查询从合同表返回最大结束日期时,它都应该返回与3个不同表中的所有关系匹配的日期。看起来子查询正在忽略where子句。我在子查询方面没有太多经验,看起来我犯了一些错误,请帮助。伙计们,我快做完了,现在我需要弄清楚如何在子查询中使用max函数,类似这样的。。。。如果要根据3个不同表中的关系获取值,请使用JOINSQL子查询未获取正确的数据,sql,Sql,我刚开始一些编程类,我正在编写CRUD操作来获取一些数据。每当下面的子查询从合同表返回最大结束日期时,它都应该返回与3个不同表中的所有关系匹配的日期。看起来子查询正在忽略where子句。我在子查询方面没有太多经验,看起来我犯了一些错误,请帮助。伙计们,我快做完了,现在我需要弄清楚如何在子查询中使用max函数,类似这样的。。。。如果要根据3个不同表中的关系获取值,请使用JOIN select distinct emp.FIRST_NAME from
select distinct emp.FIRST_NAME from
(
SELECT FIRST_NAME, max(DT_START) as DT_START
FROM employee
WHERE ID_EMP = 1
group by FIRST_NAME
) emp,
(SELECT Max(A.DT_END) as DT_END
FROM contract A,
salary E,
department D
WHERE A.ID_PRSN = E.ID_PRSN
AND A.ID_DEPT = D.ID_DEPT
) sal
where emp.DT_START <= sal.DT_END;
我们需要表定义和解释它应该返回什么,以及与3个不同表中的所有关系相匹配的日期意味着ID_EMP是表EMPLOYEE中的主键吗?子查询通常通过适当的连接来完成,特别是在WHERE子句中。另外,请不要使用旧的逗号语法连接。它们是1种过期方式2会导致大量查询数据膨胀,3会很容易返回意外结果。此外,SQL的风格和版本是什么?向我们展示db模式、示例数据、当前和预期输出。请阅读,这里是学习如何提高问题质量和获得更好答案的好地方。你们有连接3张不同桌子的模型吗
select distinct emp.FIRST_NAME from
(
SELECT FIRST_NAME, max(DT_START) as DT_START
FROM employee
WHERE ID_EMP = 1
group by FIRST_NAME
) emp,
(SELECT Max(A.DT_END) as DT_END
FROM contract A,
salary E,
department D
WHERE A.ID_PRSN = E.ID_PRSN
AND A.ID_DEPT = D.ID_DEPT
) sal
where emp.DT_START <= sal.DT_END;