我的数据库中有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
。
然而,这对我的情况并不重要。我只想知道如何使用样本表从第一个表中选择查找值,当它们之间没有预先确定的表连接时?我只想根据第二个表值的某些条件从第一个表中进行选择。
如何实现?
答案 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
带有两个查询的
如果用户少于最小点值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点的结果。