我有$ my_average = 2.5,我想显示最接近这个值的4行。 我的意思是在这种情况下 row_id 12,13和15,16
f.e
row_id srednia wydział uid
1 -100 * 12
... ... ... ...
12 -10 * 1
13 -2 * 111
14 2.5 * 107
15 4.4 * 109
16 82 * 87
17 -3 * 114
... ... ... ...
200 100 * 116
问题是我的表是从其他表连接的:(在这个查询中我是否可以命令列srednia获取最接近$ my_average = 2.5的值?
SELECT t1.średnia AS srednia, t2.field_5_value AS wydział, t4.uid
FROM preferencje t1
JOIN node t4 ON t1.entity_id = t4.nid
JOIN field_data_field_5 t2 ON t2.entity_id = t1.entity_id
答案 0 :(得分:0)
我认为这就是你想要的:
SELECT t1.średnia AS srednia, t2.field_5_value AS wydział, t4.uid
FROM preferencje t1 JOIN
node t4
ON t1.entity_id = t4.nid JOIN
field_data_field_5 t2
ON t2.entity_id = t1.entity_id
ORDER BY abs(srednia - 2.5)
LIMIT 4;
唯一的问题是LIMIT 4
。这因数据库而异。它可以是TOP 4
子句中的SELECT
。或FETCH FIRST 4 ROWS ONLY
。甚至是别的东西。