编辑
我有两个表:etape和etapex。
我需要找到每个idetape的最大idprojet(在表etapex中,并在表etape中将“ idetape”和“ idprojet”链接到“ nometape”和“ livrable”。
所以我尝试了两件事:
SELECT etapexprojet.idEtape, idProjet, nometape, livrable
FROM etape, etapexprojet
WHERE etapexprojet.idetape = (SELECT MAX(etape.idetape) FROM etapexprojet )
不幸的是,这就是我得到的:
这是我的另一个“解决方案:第一步是找到最大值(我不想使用group by):
SELECT EX.idEtape
FROM etapexprojet EX
LEFT JOIN etapexprojet EX2
ON EX.idprojet = EX2.idprojet
AND EX.idetape < EX2.idetape
WHERE EX2.idetape IS NULL
但是现在我陷入了困境,我不知道如何将我从第一个请求中获得的东西加入到表etape中。
最后,它应该给我类似的东西:
但是还有'nomEtape'和'livrable'的专栏...
感谢您的帮助!
SELECT E.*, EX.idProjet
FROM etape E
JOIN etapexprojet EX ON EX.idEtape = E.idEtape
LEFT JOIN etapexprojet EX2
ON EX.idprojet = EX2.idprojet
AND EX.idetape < EX2.idetape
WHERE EX2.idetape IS NULL
SELECT ET.idEtape, ETX.idProjet, ET.nomEtape, ET.livrable
FROM etape ET
LEFT JOIN etapexprojet ETX ON ET.idEtape = ETX.idEtape
WHERE ETX.idProjet = (SELECT MAX(idProjet) FROM etapexprojet WHERE idEtape = ET.idEtape);
注意:我认为您的输出示例是错误的,因为idEtape = 4的最大idprojet为2而不是1。