2011-06-01 212 views
0

我想要从其他表格中选择一个表格的行显示单个值,可以说通过最后一个类别ID显示表格中的图像。从表格中选择一行从其他表格中选择一个字段

我有这种类型的查询,但是这回我所有匹配键的行,如果我的插图LIMIT 1然后返回一行...

SELECT i.prof_image FROM profile_images i 
JOIN images_cat cat ON (cat.cat_id = i.cat_id) 
GROUP BY i.prof_image; 
//OR LIMIT 1; 

任何想法来解决这个问题。 (即显示最新的分类图像)?

+0

你可以包括一些样本数据和期望的输出吗? – 2011-06-01 09:11:42

+0

即时通讯不知道我得到你的问题,但我的猜测是你在查询中缺少“DISTINCT”。 SELECT DISTINCT i.prof_image .... – Rufinus 2011-06-01 09:13:38

+0

@ Rufinus,@ james C:不,我只是想显示类别图像。按最新增加的类别。 – 2011-06-01 09:17:29

回答

1

这会为你的具体实例工作..如果你需要更多的选择,那么请张贴一些细节..

SELECT i.prof_image 
FROM profile_images i 
WHERE cat_id = (select max(cat_id) from images_cat) 
+1

为什么选择它? MAX(i.cat_id)应该完全一样。 – Rufinus 2011-06-01 09:23:26

+0

@StevieG,是的,这是可能的,但我想通过加入单个查询意味着什么。 – 2011-06-01 09:26:47

+0

@Rufinus - +1好点..咖啡需要methinks .. – StevieG 2011-06-01 09:41:52

1
SELECT * FROM table_1 
LEFT JOIN table_2 ON table_1.id = table_2.id 

该查询将获取table_2中具有相同id值的所有东西。

请注意,它是一个左连接 - 这意味着如果在table_2中有没有匹配值,它仍会返回table_1中的值。

你使用last()的意图是什么?

希望这会有所帮助。

+0

不,这不是简单的,你写, – 2011-06-01 10:25:19

+0

@ime对不起,没有必要喊:P。你有没有找到你的答案? – 2011-06-02 21:55:06

+0

是的,StevieG的回答是帮助我的,但还没有作为一个查询。意思是通过JOINS拾取记录> ....并感谢你的回复人。 – 2011-06-03 11:03:31

相关问题