如何根据另一个表的值选择MySQL的值?

时间:2014-06-28 20:50:43

标签: mysql sql

我的数据库中有2个表。一个名为:points,另一个名为:sample

points表如下所示:

id  user_id     points
1   5           200
2   7           400
3   8           7000
4   12          900
5   23          3100

sample表如下所示:

id   points     number
1    500        10
2    1000       20
3    3000       30
4    5000       40
5    10000      50

我想选择例如user_id = 12并确定哪个number(来自示例表)属于他的观点。确定应该基于他们的观点。如果他们在sample表格中没有达到更高的数字,那么他们应该在此之前收到number

然而,这对我的情况并不重要。我只想知道如何使用样本表从第一个表中选择查找值,当它们之间没有预先确定的表连接时?我只想根据第二个表值的某些条件从第一个表中进行选择。

如何实现?

2 个答案:

答案 0 :(得分:1)

获取{1}}只能获得{1}}的值,或者使用MAX

LIMIT

获取所有SELECT s.number FROM points p INNER JOIN sample s ON s.`points` <= p.`points` WHERE user_id = 12 ORDER BY s.number DESC LIMIT 1; 您需要子查询的number

user_id
带有两个查询的

SQLFiddle demo

如果用户少于最小点值SELECT p.user_id , (SELECT s.number FROM sample s WHERE s.`points` <= p.`points` ORDER BY s.number DESC LIMIT 1) Number FROM points p ,则返回

答案 1 :(得分:0)

SELECT max(s.number)
 FROM points AS p, sample AS s
 WHERE p.user_id = 12
 AND p.points >= s.points

也许您应该在样本表中添加一个0点和0号的行,以获得低于500点的结果。