sqlite表查询 - 需要帮助获取正确的结果

时间:2018-03-07 18:04:14

标签: sqlite

我正在使用 SQLITE 编写应用程序。

其中一个表是用户,其中包含 user_id 和其他字段作为名称,电子邮件等。另一个表是 groups with a字段 group_id 和其他字段作为组名称。

users table

groups table

然后我创建了一个表 users_groups ,指定哪些用户属于哪些组,在此表中我们有 user_id group_id

users-groups table

我可以轻松地搜索例如用户4所在的组。

SELECT * FROM users_groups WHERE user_id = 4

结果将是第1,2和6组,这是正确的。

我无法做的是进行查询,在其中我获得用户的一部分。如果我进行以下查询:

SELECT * FROM users_groups WHERE user_id<> 4

结果将是第1组和第3组,这是不正确的,因为用户4实际上也是第1组的一部分。

我一直在尝试JOIN,WHERE,HAVING等......但没有成功!!

有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

当用户不是某个组的成员时,该组ID可能根本不会显示在@Pipe({ name: 'filterPipe', pure: false }) export class FilterPipe implements PipeTransform { transform(value: any, args?: any[]): any { return value.filter(item => { return args.length ? args.indexOf(item.name) != -1 : value; }) } } 表中,因此您不能仅在此表上使用简单的SELECT。

此查询返回用户的组ID:

users_groups

此查询返回所有其他组:

SELECT group_id
FROM users_groups
WHERE user_id = 4;