我有2个表分别命名label5,labels。

android - SQLITE:显示具有两个条件的三个表之间的差异-LMLPHP

我想比较这两列数据和显示之间的差异。

像下面一样,我在sqlite查询中需要它。

android - SQLITE:显示具有两个条件的三个表之间的差异-LMLPHP

当前的编码。



public Cursor getLotsPerCustomer1(long name) {
  SQLiteDatabase db = this.getReadableDatabase();
  String whereclause = KEY_NAME + "=?";
  String[] whereargs = new String[] {
    String.valueOf(name)
  };
  return db.query(TABLE_LABELS, null, whereclause, whereargs, null, null, ROUTE);
}





我想要与下面相同的sqlite格式。请指教。



select t1.route from labels t1
left
join labels5 t2 on t1.route = t2.number
where t2.number is null





涉及两个条件。

第一个条件是检查表“ customer”,并从表标签中搜索匹配结果,此查询可以正常工作。



public Cursor getLotsPerCustomer1(long name) {
  SQLiteDatabase db = this.getReadableDatabase();
  String whereclause = KEY_NAME + "=?";
  String[] whereargs = new String[] {
    String.valueOf(name)
  };
  return db.query(TABLE_LABELS, null, whereclause, whereargs, null, null, ROUTE);
}





第二个条件是
通过第一个条件之后,它还应该与表“ labels5”进行比较,这就是我罢工的地方。感谢您的建议。

表客户:



CREATE TABLE "customer" (
  "_id"
  TEXT,
  "customer_name"
  TEXT
);





桌上标签



CREATE TABLE "labels" (
	"sno"	INTEGER,
	"route"	TEXT,
	"id"	TEXT,
	"_id"	TEXT
);





桌上标签5



CREATE TABLE "labels5" (
	"id3"	INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
	"number"	TEXT NOT NULL UNIQUE,
	"outletname"	TEXT,
	"sunday"	INTEGER,
	"monday"	INTEGER,
	"tuesday"	INTEGER,
	"wednesday"	INTEGER,
	"thursday"	INTEGER,
	"saturday"	INTEGER,
	"closed"	INTEGER,
	"calling"	TEXT,
	"week"	INTEGER
);

最佳答案

您可以使用rawQuery()来做到这一点:

public Cursor getRoutes(long name) {
    SQLiteDatabase db = this.getReadableDatabase();
    String sql = "select t1.route from labels t1 left join labels5 t2 on t1.route = t2.number where t2.number is null";
    return db.rawQuery(sql, null);
}

关于android - SQLITE:显示具有两个条件的三个表之间的差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58883720/

10-12 06:00