我正在运行以下命令,并且以下各列的名称不明确

Cursor cursor = getWritableDatabase().rawQuery("select ((odometer) - y.odometer) / (gallons) as mpg from gasLog x, gasLog y where y.odometer = (select max(z.odometer) from gasLog z where z.odometer < (odometer))", null);


列里程表,加仑,里程表

我尝试将其更改为“里程表”而不是(里程表),但是它什么也没有返回。我需要做什么才能使其正确识别该列?

我相信一段时间前我也尝试过gasLog.odometer,但这也不起作用。

最佳答案

问题是您在同一张表中有一个子选择,但是您不使用别名。这种方式SQLite不能告诉您在子选择中引用的是哪些字段:原始选择的字段(x或y)或子选择的字段。在子选择中也使用别名将解决此问题。

10-08 08:30