SQLiteで3つのテーブルを結合する方法は?私は3つのテーブルを持っています。1つはInfo
、2つ目はworkForce
、3つ目はworkDetails
です。
テーブル情報:id(PK),name,status,date,weather
テーブル労働力: id1(PK), subContractors,noOfPeople,noOfHours
テーブルWorkDetails: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
テーブルWorkDetails
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であるとすると、ID1とTableInfo_id1のすべての行が取得されます。
これが私がこれまでに試したことです
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;
}
コードが機能していないようです。どうすればこれを実現できますか?ありがとう!
あなたがする必要がある拳の事はの外部キーを追加することでテーブル情報をに表労働力との外部キー表の労働力に表WorkDetails
次に、このようにクエリを変更して書き込みます
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
3つのテーブルを結合した後、要件に基づいてクエリを変更します。
外部キーを追加するためのチュートリアルを確認してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加