假设我有以下表格
sqlite> SELECT * FROM Artists;
ArtistID|ArtistName
1 |Peter Gabriel
2 |Bruce Hornsby
3 |Lyle Lovett
4 |Beach Boys
5 |Supernatural
sqlite> SELECT * FROM CDs;
CDID|ArtistID|Title |Date
1 |1 |So |1984
2 |1 |Us |1992
3 |2 |The Way It Is |1986
4 |2 |Scenes from the Southside|1990
5 |1 |Security |1990
6 |3 |Joshua Judges Ruth |1992
7 |4 |Pet Sounds |1966
我想进行此类查询
sqlite>SELECT ArtistID as _id, ArtistName, Title FROM Artists, CDs WHERE Artists.ArtistID=CDs.ArtistID;
我如何使用Android SQLiteQueryBuilder
类使用它,我需要为我的投影地图添加什么?
或者使用SQLiteDataBase
类会更容易吗?
答案 0 :(得分:0)
如何使用Android SQLiteQueryBuilder类
来使用它
好吧,我只是在rawQuery()
上使用SQLiteDatabase
,因为你知道SQL并拥有SQL。
如果某人持枪强迫您使用SQLiteQueryBuilder
,您的投影地图可能会将ArtistName
映射到ArtistName
或Artists.ArtistName
和{{1} } Title
或Title
。我没有将CDs.Title
与隐式(或显式)SQLiteQueryBuilder
一起使用,部分原因是我在编写内容提供商时仅使用JOIN
。
答案 1 :(得分:0)
好的我明白了。仍然必须硬编码where语句。
projectionMap.put(ArtistID, ArtistID + " AS " + _ID);
projectionMap.put(Title, Title);
queryBuilder.setProjectionMap(projectionMap);