SQLITE查询帮助

SQLITE查询帮助,sql,sqlite,Sql,Sqlite,我有三个表Task和TaskTag,Tag如下 CREATE TABLE Task (task_id text PRIMARY KEY, subject text); CREATE TABLE TaskTag (task_tag_id text PRIMARY KEY, task_id text, tag_id text); CREATE TABLE Tag (tag_id text PRIMARY KEY, tag text); 我想在Task中找到一条记录,其中有两个匹配的标记:tag1、

我有三个表Task和TaskTag,Tag如下

CREATE TABLE Task (task_id text PRIMARY KEY, subject text);
CREATE TABLE TaskTag (task_tag_id text PRIMARY KEY, task_id text, tag_id text);
CREATE TABLE Tag (tag_id text PRIMARY KEY, tag text);
我想在
Task
中找到一条记录,其中有两个匹配的标记:tag1、tag2

SQL看起来怎么样,我已经尝试过了,但是我无法使用AND实现,但是可以使用OR

SELECT * 
  FROM Task 
  JOIN TaskTag ON Task.task_id = TaskTag.task_id 
  JOIN Tag ON TaskTag.tag_id = Tag.tag_id 
 WHERE tag = "tag1" 
   AND tag = "tag2"
使用:


拥有COUNT(DISTINCT…)的
需要等于
参数中
的数量,否则您可能会看到误报(即tag1的重复项将计为2,等等)。

@Joe Tuskan:请不要回到原来的措辞——这是浪费我们的选票,没有任何价值。以后编辑时请更加谨慎。
  SELECT * 
    FROM Task 
    JOIN TaskTag ON Task.task_id = TaskTag.task_id 
    JOIN Tag ON TaskTag.tag_id = Tag.tag_id 
   WHERE tag IN ('tag1', 'tag2')
GROUP BY Task.task_id
  HAVING COUNT(DISTINCT tag) = 2