Java 如何在SQLite中连接三个表?
如何在SQLite中连接三个表?我有三个表,一个是Java 如何在SQLite中连接三个表?,java,android,sqlite,outer-join,Java,Android,Sqlite,Outer Join,如何在SQLite中连接三个表?我有三个表,一个是Info,第二个是workForce,第三个是workDetails 表格信息:id(主键)、姓名、状态、日期、天气 表工作人员:id1(PK)、分包商、noOfPeople、noOfHours 表WorkDetails:id2(PK),项目,工作描述,TableInfo\u id(FK)//包含多行 表格信息 ID NAME Weather Date Status ----------
Info
,第二个是workForce
,第三个是workDetails
表格信息:id(主键)、姓名、状态、日期、天气
表工作人员:id1(PK)、分包商、noOfPeople、noOfHours
表WorkDetails:id2(PK),项目,工作描述,TableInfo\u id(FK)//包含多行
表格信息
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
假设名称是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;
}
我的代码似乎不起作用..我如何才能做到这一点?谢谢
将外键添加到workforce表,并在info表中添加指向ID的点
从Info.ID=Wordforce.SOME\u FOREIGN\u KEY和Info.ID=workdetals.TableInfo\u ID上的Info-internal-join-Workforce-inner-join-workdetals-ON-Info.ID=Wordforce.SOME\u-FOREIGN\u-KEY和Info.ID=workdetals.TableInfo\u-
认为work应该没有尝试过,因为您需要做的第一件事是将表信息的外键添加到表工作人员中,将表工作人员的外键添加到表工作人员中
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
然后像这样修改查询
Select * from Table Info tf
LEFT JOIN Table WorkForce twf ON twf.tf_id = tf.id
LEFT JOIN Table WorkDetails twd ON twd.tw_id = twf.id
连接三个表后,根据需求修改查询
查看有关添加外键的教程。任何建议都会非常有用。您的sqlite查询似乎存在许多问题。应该尝试记录查询并检查错误。我不知道如何加入这些表。。看起来很复杂..这是什么?问题是完全不同的请…我问的是如何在SQLite中连接多个表,而不是nullPointerException!那么我是否应该像我所做的那样将表信息的外键添加到表WorkDetails中?在这两者之间,表WorkForce中的ID将始终与表信息中的ID相同…我是否仍然需要将表信息的外键添加到表WorkForce中?看,您有三个表,它们之间有某种关系。现在,您想通过查询从所有三个表中获取相关或公共结果吗?你会怎么做?需要有一些公共名称或id,使用它们可以连接表并编写所需的查询以获得结果。