rawQuery select语句中的不明确的列名

时间:2014-03-14 00:32:47

标签: java android sqlite

我正在运行以下命令,并且我为以下列添加了不明确的列名

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);
柱式里程表,加仑,里程表

我已经尝试将其更改为“里程表”&#39;而不是(里程表)然而它不会返回任何东西。我需要做些什么才能让它正确识别该列?

我相信我前一段时间也尝试过gasLog.odometer,但也没用。

1 个答案:

答案 0 :(得分:0)

问题是您有来自同一个表的子选择,但您不使用别名。这样,SQLite就无法分辨您在子选择中指的是哪些字段:原始选择字段(x或y)或子选择字段。在subselect中使用别名也可以解决这个问题。