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
たが、何も変わりません。