MySql因未显示正确结果而排序

MySql因未显示正确结果而排序,mysql,sql,select,group-by,sql-order-by,Mysql,Sql,Select,Group By,Sql Order By,我有3张表格,包括项目、讨论和评论。项目有多个讨论,每个讨论都有多个评论 我想将最后一次讨论添加到没有评论的讨论表中。我还需要特定讨论所链接到的项目详细信息。我的查询是这样的:我按d.disu Id降序排列讨论表,但它仍然使用第一条记录,而不是最后一条记录。我做错了什么???试试这个: SELECT p.PRO_Id, p.PRO_Name, d.DIS_ThreadDesc, dev.DEV_Name, loc.LOC_Name, d.USE_Id, d.DIS_Date

我有3张表格,包括项目、讨论和评论。项目有多个讨论,每个讨论都有多个评论 我想将最后一次讨论添加到没有评论的讨论表中。我还需要特定讨论所链接到的项目详细信息。

我的查询是这样的:我按d.disu Id降序排列讨论表,但它仍然使用第一条记录,而不是最后一条记录。我做错了什么???

试试这个:

SELECT p.PRO_Id, p.PRO_Name, d.DIS_ThreadDesc, dev.DEV_Name, loc.LOC_Name, d.USE_Id, d.DIS_Date
FROM projects p LEFT JOIN discussions d ON p.PRO_Id = d.PRO_Id LEFT JOIN developer dev ON p.DEV_Id=dev.DEV_Id LEFT JOIN locality loc ON p.LOC_Id=loc.LOC_Id WHERE p.PRO_Status=1 and d.DIS_Status=1 AND d.DIS_Id NOT IN ( select DIS_Id from comments where COM_Status=2 ) GROUP BY p.PRO_Id ORDER BY d.DIS_Id desc LIMIT 3
SELECT p.PRO_Id, p.PRO_Name, d.DIS_ThreadDesc, dev.DEV_Name, 
       loc.LOC_Name, d.USE_Id, d.DIS_Date
FROM projects p
INNER JOIN discussions d ON p.PRO_Id = d.PRO_Id 
INNER JOIN (SELECT d.PRO_Id, MAX(d.DIS_Id) lastDisc 
            FROM discussions d  
            WHERE d.DIS_Status = 1 
            GROUP BY d.PRO_Id
          ) AS A ON d.PRO_Id = A.PRO_Id AND d.DIS_Id = A.lastDisc 
LEFT OUTER JOIN comments c ON d.DIS_Id = c.DIS_Id AND c.COM_Status=2 
LEFT OUTER JOIN developer dev ON p.DEV_Id = dev.DEV_Id 
LEFT OUTER JOIN locality loc ON p.LOC_Id = loc.LOC_Id
WHERE p.PRO_Status = 1 AND c.DIS_Id IS NULL
ORDER BY d.DIS_Id DESC;

如果你喜欢,考虑下面简单的两步行动:1。如果您还没有这样做,请提供适当的CREATE和INSERT语句和/或SQLFIDLE,以便我们可以更轻松地复制问题。2.如果您还没有这样做,提供与第1步中提供的信息相对应的期望结果集。好的,我将尝试使用sqlfiddle进行更多澄清。你想在每个项目中进行最后讨论吗?是的,这就是我想要的。是的,是的,这正是我想要的。@Shah先生,对于这些问题,我应该使用sqlfiddle进行更准确的解释,还是让我的问题已经给了你们一个关于我的要求的清晰的描述。@如果你们添加带有样本数据的演示,这样每个人都能理解你们所面临的问题是什么,这是很好的…@沙阿先生,好的,我会在尝试提出下一个问题时采纳这个建议ques@.