Получение имени таблицы в результатах курсора, Android, SQLite
Я пишу приложение для Android с участием автомобилей и запчастей.
То, что я пытаюсь сделать, это предложить ListView всех частей в БД, за исключением частей, уже назначенных для конкретного автомобиля.
Я могу получить желаемые результаты с помощью следующего запроса с оператором EXCEPT.
SELECT DISTINCT Parts._id, Parts.PartNumber, Parts.PartName, Parts.MFG, Parts.Barcode, Parts.Notes, Parts.Photo
FROM Parts
JOIN CarsToParts
WHERE CarsToParts.CarID != carID
EXCEPT
SELECT DISTINCT Parts._id, Parts.PartNumber, Parts.PartName, Parts.MFG, Parts.Barcode, Parts.Notes, Parts.Photo
FROM Parts
JOIN CarsToParts
WHERE CarsToParts.CarID = carID AND CarsToParts.PartID = Parts._id
У меня проблема в том, что я получаю результат Cursor, который включает в себя имя таблицы как часть названий ключей следующим образом:
I/System.out: >>>>> Dumping cursor
android.database.sqlite.SQLiteCursor@39719c0
I/System.out: 0 {
I/System.out: Parts._id=21
I/System.out: Parts.Photo=<unprintable>
I/System.out: Parts.PartName=Oil Filter
I/System.out: Parts.PartNumber=116 354 733
I/System.out: Parts.MFG=Mercedes Benz
I/System.out: Parts.Barcode=254485880
I/System.out: Parts.Notes=
I/System.out: }
I/System.out: <<<<<
Когда я пытаюсь отправить это в CursorAdapter, он задыхается от этого.
Таблица CarsToParts имеет следующие столбцы:
_id
CarID
PartID
Таблица CarsToParts позволяет мне сопоставить одну и ту же деталь с двумя разными автомобилями, что часто возможно для автомобилей одного и того же производства.
Есть ли способ заставить SQLite не включать имя таблицы как часть имен ключей в выходных данных Cursor?
РЕДАКТИРОВАТЬ: После дальнейшего изучения я обнаружил, что CursorAdapter требует наличия столбца _id. Что, если только я могу заставить SQLite не включать имя таблицы как часть имен ключей.
1 ответ
Имена столбцов, возвращаемые запросом , не указаны, если вы не используете AS:
SELECT DISTINCT Parts._id AS _id, Parts.PartNumber AS PartNumber, ...