2013-07-11 25 views
1

我当前有一个表项目(ID)和一个表project_step(ID,项目,步骤(整数))。MySQL链接表获取与table.value分手的最后一行= X

1个项目链接到1个或多个project_step。

我想要得到的项目中最后一个进入project_step(project_step.id DESC)具有阶梯= X.

我需要这样做在子查询的列表,但我不知道如何写下来。

回答

1

该查询将返回两个表中的所有列。额外子查询的目的是分别获得表project_step上每project的最新ID

SELECT a.*, b.* 
FROM project a 
     INNER JOIN project_step b 
      ON a.ID = b.project 
     INNER JOIN 
     (
      SELECT project, MAX(ID) ID 
      FROM project_step 
      GROUP BY project 
     ) c ON b.project = c.project AND 
       b.ID = c.ID 
WHERE b.step = ? 
+0

我现在试一试这个权利,谢谢。我需要10/15分钟,因为这个查询比这个复杂一点;) –

+0

和...它的工作非常感谢你JW(这有点超过了我的SQL技能) –

0

尝试类似这样的东西。

SELECT project.* from project_step 
JOIN project ON project.id = project_step.project 
GROUP BY project 
HAVING SUBSTRING_INDEX(GROUP_CONCAT(step ORDER BY step DESC SEPARATOR ' '), ' ', 1) = X 
相关问题