2012-02-18 49 views
1

我到目前为止有此查询:SQL帮助

SELECT `p`.`id`, cp.pattern_category_id, `p`.`title`, `p`.`filename`, p.precedence 
    FROM (`patterns` p) JOIN `categories_to_patterns` cp ON `p`.`id` = `cp`.`pattern_id` 
    JOIN `pattern_categories` pc ON `cp`.`pattern_category_id` = `pc`.`id` 
    WHERE `cp`.`pattern_category_id` = '29' 

它返回这样的:

id | pattern_category_id | title | filename | precedence 
6    29   Alan  alan.jpg  2 
7    29   Joe  joe.jpg  1 

我想要做什么得到具有最低优先级的行。我不确定我是否应该使用子查询,对某些分组做某个分(p.precedence),或者使用group by/having。

任何帮助表示赞赏。

回答

3

您可以随时ORDER BY p.precedence ASC limit 1这是否适合您?

+0

+1,绝对应该工作。 – 2012-02-18 18:50:19

+0

或者,你可以有'WHERE优先级=(SELECT MIN(优先级)FROM ...)',这将能够返回具有相同(最小)优先级的多行。 – 2012-02-18 19:03:53

+0

很好的答案。我只需要它返回1行。奇迹般有效。 – Catfish 2012-02-18 22:02:37