我有2个表分别命名label5,labels。
我想比较这两列数据和显示之间的差异。
像下面一样,我在sqlite查询中需要它。
当前的编码。
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/