我在 Debian 服务器上有 2 张桌子、游乐设施和台阶。
从 Xamarin 应用程序中,我从该服务器(Refit、Newtonsoft Json和SQLite-net PCL包)获取数据以填充本地表。
当我在 mariadb 上使用此查询时:
SELECT 1_steps.*
FROM 1_rides, 1_steps
WHERE 1_rides.id=1_steps.ride_id
AND 1_rides.start=1
GROUP BY 1_rides.id
我得到了正确的结果(每次骑行的第一步,然后从 1 开始)
但是当使用 Sqlite 的等价物时:
SELECT Steps.*
FROM Rides,Steps
WHERE Rides.Id=Steps.RideId
AND Rides.Start=1
GROUP BY Rides.Id
结果,我得到了每次(相同)骑行 的最后一步!
无论是在 mariadb 还是 sqlite 上,每个表都有一个主键(id
字段)。
我检查了一下,数据的发送、接收和保存顺序相同。
只需在移动应用程序中添加:
foreach (var step in await App.RestClient.getSteps())
if (dbCon.InsertOrReplace(step) != 1)
....
我尝试添加ORDER BY Rides.Id
,但这并没有改变任何东西。