SQL - 帮助左连接查询

时间:2016-05-12 08:01:20

标签: mysql sql-server left-join

我尝试使用唯一的查询来获取数据,但我无法得到我想要的数据。 我有3张桌子: 我想得到所有照片数据的最大步骤(ID和名称)。 如果他们没有,可以使用空值。

Photo table

photo_id | photo_name
---------------------
1        | A 
2        | B 
3        | C 
4        | D 
5        | E 

Steps table

step_id | step_name  
----------------------
1       | AAA         
2       | BBB         
3       | CCC        
4       | DDD   

photoStep table

id | photo_id | step_id
----------------------
1  | 1        | 1         
2  | 1        | 2         
3  | 1        | 3        
4  | 3        | 1
5  | 5        | 1           

我希望得到的结果是

photo_id | photo_name | step_id | step_name
-------------------------------------------
1        | A          | 3       | CCC  
2        | B          | NULL    | NULL 
3        | C          | 1       | AAA  
4        | D          | NULL    | NULL 
5        | E          | 1       | AAA 

我已经尝试过这个查询,但由于行太多而错过了一些内容:

SELECT * FROM photo p
LEFT JOIN photoStep ps ON ps.photo_id=p.photo_id

我得到了这样的结果:

photo_id | photo_name | step_id | step_name
-------------------------------------------
1        | A          | 1       | AAA  
1        | A          | 2       | BBB  
1        | A          | 3       | CCC  
2        | B          | NULL    | NULL 
3        | C          | 1       | AAA  
4        | D          | NULL    | NULL 
5        | E          | 1       | AAA 

非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:2)

您需要在每个"text" : "OS_" + (new Date).getTime()的{​​{1}}上LEFT JOIN执行:

MAX(step_id)