标题有点模糊,所以在这里。SQL-从共享两列值的表中获取所有记录
我有一个表:tag_tasks
它是重要的两列连接表:tag_id
和task_id
我想获得有两个标签的任务数的计数。
例如:我有一个task(id = 12)
和tag(id = 24
和tag_tasks另一tag(id = 30)
我想有这些记录:
tag_id task_id
24 12
30 12
比方说,也存在有一些记录,使之切合实际:
tag_id task_id
24 12
30 12
36 43
24 45
56 98
24 115
30 115
我只想在task_id同时关联我的目标标记的情况下返回记录。在这种情况下,它将只是前两行(task_id = 12)和最后两行(task_id = 115),然后获得总计数(在这种情况下,我的最终目标是返回数字四)。
编辑 - RESULT SETS
tag_id task_id
24 12
30 12
24 115
30 115
但最后,我想用这样的(上述结果的总和)来结束:
task_count_for_both_tags_combined
4
这是一个有点如果我能澄清我的问题,请让我知道。
谢谢。
编辑 - 我的成绩到目前为止 这段代码让我接近,但我需要添加所产生的号码 - *注意,这是伸出把当前的数据,也可以是任意数量的行,我组通过TASK_ID *
SELECT COUNT(task_id) AS task_count, tag_id
FROM `tag_tasks`
WHERE tag_id
IN (15, 11)
GROUP BY task_id
HAVING task_count >1
这给我留下了这样的结果,这是我需要的总和:
task_count task_id
2 34
2 45
编辑 - SQLFIDDLE实例 我刚刚知道这个存在,所以这里有一个错误的小提琴答案,其中一个海报的数据集略大一些。这个SQL最终选择了不同于我想要的标签的记录(31和32而不是24和30)。
http://www.sqlfiddle.com/#!2/116f9/1/0
请在您的问题中显示最终结果。 –
是mysql表吗? –
这是一个mysql表。 – Squadrons