【发布时间】:2016-01-08 12:22:20
【问题描述】:
如何在 SQLite 中连接三个表?我有三张表,一张是Info,第二张是workForce,第三张是workDetails。
表信息:id(PK),name,status,date,weather
表工作人员:id1(PK), subContractors,noOfPeople,noOfHours
表工作详情:id2(PK),project,workDescription,TableInfo_id(FK) //contains multiple row
表格信息
ID NAME Weather Date Status
---------- ---------- ---------- ---------- ----------
1 Paul Sunny 15/10 MC
2 Allen Rainy 15/10 Working
表工作人员
ID1 SubContractors NoOfPeople NoOfHours
---------- -------------- ---------- ----------
1 AAA 2 2
2 BBB 3 1
表格工作细节
ID2 Project WorkDescription TableInfo_id
---------- ---------- -------------- ----------
1 A B 1
2 1
3 1
4 1
5 C D 2
6 2
7 2
8 2
假设 name 是 Paul,因此将检索 ID 为 1 且 TableInfo_id 为 1 的所有行。
这是我目前尝试过的
public Cursor readEntry(String name) {
String selectQuery = ("SELECT Weather,Date,Status,SubContractors,NumberOfPeople,NumberOfHours,TimeIn,TimeOut FROM "+TABLE_INFO+TABLE_WORKFORCE+TABLE_WORKDETAILS+ "WHERE Name= ? AND"+ID=ID1+ "AND"+ID=TableInfo_id);
Cursor c = database.query(TABLE_INFO,TABLE_WORKFORCE,TABLE_WORKDETAILS,new String[]{id,name,weather,date,status,iD1,subcontractors,numberOfPerson,numberOfHours,id2project,workDescription,TableInfo_id},MyDatabaseHelper.Name+"=?",
new String[] { String.valueOf(name)}, null, null, null, null,null,null,null,null,null,null,null,null);
if (c != null) {
c.moveToFirst();
}
return c;
}
我的代码似乎无法正常工作..我怎样才能做到这一点?谢谢!
【问题讨论】:
-
任何建议将不胜感激
-
您的 sqlite 查询似乎有很多问题。应该尝试记录您的查询并检查错误。
-
我不知道加入这些表..看起来很复杂..
-
@CL 什么?请这个问题完全不同......我问的是如何在 SQLite 中加入多个表,而不是 nullPointerException!
标签: java android sqlite outer-join