gpt4 book ai didi

mysql - 如何让 mysql 查询这种情况

转载 作者:可可西里 更新时间:2023-11-01 08:50:39 25 4
gpt4 key购买 nike

我让我的真实案例更简单。

案例:

有多条曲线,它们以点为单位传递,每条曲线都有最后的 1 个点。最后的点在数据库中表示为曲线的最大 point_order 值。

应该是找到通过特定点且具有相同终点(相同 point_id)的曲线

案例(表格):

点表:

point_id|x|y

编辑:

curve_points 表示例 - 查找具有相同 point_id=80 和相同终点的所有曲线:

id|curve_id|point_id|point_order
|119 |6 |12
|119 |80 |9
|119 |1000 |1
|76 |80 |7
|76 |6 |9
|76 |2 |2
|90 |80 |7
|90 |6 |9
|90 |99 |15

输出结果应该是:

  |curve_id|
|119 |
|76 |

因为曲线 119,76 具有相同的最终点 = 6 并且具有相同的点 80。曲线 90 不是因为点 6 不是他的最终点

psedocode 函数-需要添加选择相同终点的代码:

function findCurvesForSamePointAndSameFinalPoint(pointID){
query="SELECT curve_id FROM curve INNER JOIN point GROUP BY curve_id HAVING point_id="+pointID+";";
return getDATABASEResult(query);
}

编辑2:带有一些数据的在线 sql 进行测试:http://sqlfiddle.com/#!2/59e9f/1 (那里现有的查询不起作用)

谢谢

最佳答案

如果我没记错的话。它是这样的:

SQLFiddle demo

select distinct c1.curve_id,(select point_id from curve t1
where t1.curve_id=c1.curve_id
order by point_order desc
limit 1)
TheLastPoint

from curve c1
join curve c2 on
(select point_id from curve t1
where t1.curve_id=c1.curve_id
order by point_order desc
limit 1)
=
(select point_id from curve t2
where t2.curve_id=c2.curve_id
order by point_order desc
limit 1)
And c1.curve_id<>c2.curve_id

where c1.curve_id in (select curve_id from curve where point_id=80)
and
c2.curve_id in (select curve_id from curve where point_id=80)
order by TheLastPoint,c1.curve_id

关于mysql - 如何让 mysql 查询这种情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14955590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com