简单的MySQL查询问题

时间:2010-02-06 01:01:06

标签: mysql

bins
----
id      min      max
1       1        20
2       21       40
3       41       60

pictures
--------
id
3
11
59

基本上,我想选择最高图片ID,然后从bin表中选择它匹配的bin id。例如,对于pictures.id = 59(最高),我想要bins.id = 3.任何人都可以帮我解决这样的问题吗?像

这样的东西
SELECT bins.id AS id
FROM bins
    JOIN pictures.id 
    ON bins.min < MAX(pictures.id)
        AND bins.max > MAX(pictures.id)

似乎不起作用。谢谢!

3 个答案:

答案 0 :(得分:2)

SELECT id 
FROM bins
WHERE min < (Select Max(id) from Pictures) 
  AND max > (Select Max(id) from Pictures) 

希望有所帮助

最高

答案 1 :(得分:1)

试试这个

   Select id From Bins
   Where (Select Max(id) From pictures)
       Between Min and Max

答案 2 :(得分:0)

如果bin限制(bin.min和bin.max)随着样本数据中的id增加,则可以使用以下方式获取“max”图片id的bin id:

SELECT MAX( bins.id )
FROM   bins
JOIN   pictures
ON     bins.min <= pictures.id
AND    bins.max >= pictures.id

请注意使用<==> - 否则将有效排除bin限制值(例如picture.id = 41与bin不匹配)。

也可写:

SELECT MAX( bins.id )
FROM   bins
JOIN   pictures
ON     pictures.id BETWEEN bins.min AND bins.max

如果您的bin限制未使用bin id排序,则将中断