我有两个问题:
SELECT COUNT(*) as cnt, video.title
FROM tags
INNER JOIN tag_name ON tags.tag_name_id = tag_name.tag_name_id
INNER JOIN video ON video.filename = tags.filename
WHERE tag_name.tag LIKE 'tree'
GROUP BY filename
和
SELECT COUNT(*) as cnt2 FROM tags GROUP BY filename
在第一个,我有一个计数器,计算每个视频中tag
“树”出现的次数。
在第二个,我从每个视频中选择标签的总数。
结果可以在此处找到:1st query< - > 2nd query
现在我正试图通过使用子查询方法来“加入”它们,但是我没有得到正确的结果......计数器不能像我预期的那样工作,因为你可以看到{{3} }
我做错了什么?我怎样才能正确地将这两个查询“加入”?
答案 0 :(得分:1)
使用相关子查询尝试此(SELECT COUNT(*) AS cnt2 FROM tags WHERE filename=t.filename) vcnt
将计算子查询文件名等于t的文件中的所有记录.filename父表的文件名,即标签t
SELECT
COUNT(*) AS cnt,
(SELECT
COUNT(*) AS cnt2
FROM
tags
WHERE filename = t.filename) vcnt,
video.title
FROM
tags t
INNER JOIN tag_name
ON t.tag_name_id = tag_name.tag_name_id
INNER JOIN video
ON video.filename = t.filename
WHERE tag_name.tag LIKE 'tree'
GROUP BY t.filename