0

Debian サーバーに 2 つのテーブル (乗り物と歩数) があります。

Xamarin アプリから、このサーバー ( RefitNewtonsoft 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たが、何も変わりません。

4

1 に答える 1