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

时间:2019-11-15 19:46:31

标签: android sqlite android-sqlite

我有2个表分别命名标签5,标签。

enter image description here

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

与下面相同,我在sqlite查询中需要它。

enter image description here

当前编码。

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
);

3 个答案:

答案 0 :(得分:0)

您可以使用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);
}

答案 1 :(得分:0)

从一个表中获取不在另一个表中的值的更好方法是使用EXCEPT

SELECT route FROM labels
EXCEPT
SELECT number FROM labels5;

答案 2 :(得分:0)

select customer_name as FirstTable,route as SecondTale,number as ThirdTable

from customer,labels,labels5
where customer._id=labels._id AND labels.route=labels5.number

相关问题