如何获取字段计数Mysql
问题的标题是senseles,我知道。但我的问题似乎难以解释 我有一张这样的一张桌子如何获取字段计数Mysql,mysql,sql,Mysql,Sql,问题的标题是senseles,我知道。但我的问题似乎难以解释 我有一张这样的一张桌子 +-----+-----+---- | id |tag |item| +=====+=====+=== | 1 | 1 | 132| +-----+-----+--- | 2 | 2 | 132| +-----+-----+--- | 3 | 2 | 134| +-----+-----+--- | 4 | 1 | 135| +-----+-----+--- 我想找到相关项目的数量 例如,项
+-----+-----+----
| id |tag |item|
+=====+=====+===
| 1 | 1 | 132|
+-----+-----+---
| 2 | 2 | 132|
+-----+-----+---
| 3 | 2 | 134|
+-----+-----+---
| 4 | 1 | 135|
+-----+-----+---
我想找到相关项目的数量
例如,项目132有1,2个标记值,项目134有2个标记值。项目132和项目134具有相同的2标签值。因此项目132和项目134有一个相关标签
我想让关系标签像这样计数
如何设置在MySQL中获取关系标记计数的SQL查询。假设您希望关系计数介于132和134之间,您可能需要考虑
SELECT COUNT(*) AS relcount
FROM tablename AS aa
INNER JOIN tablename AS bb ON aa.tag=bb.tag
WHERE aa.item=132
AND bb.item=134
自动加入将使您开始:
select t1.item item1, t2.item item2, etc
from table t1 join table t2 on t1.item <> t2.item
and t1.tag = t2.tag
where whatever
选择t1.item项目1、t2.item项目2等
从表t1连接t1.item t2.item上的表t2
和t1.tag=t2.tag
在哪里
如果每个项目最多只存在一次标记,则可以使用自连接
SELECT t2.item, COUNT(t2.id) cnt
FROM mytable t1
JOIN mytable t2
ON t1.tag=t2.tag AND t1.item<>t2.item
WHERE t1.item = 132
GROUP BY t2.item
选择t2.item,计数(t2.id)cnt
来自MyTableT1
联接我的表t2
在t1.tag=t2.tag和t1.itemt2.item上
其中t1.item=132
按项目分组
.您可以执行以下操作:
SELECT COUNT(*) FROM tt t1
JOIN tt t2 ON t1.tag=t2.tag
WHERE t1.item = 132
AND t2.item = 134;
这将为您提供相关标记以及item1和item2(具有此相关标记的项目)
然后,如果需要计数,可以添加计数(T1.tag)并按item1、item2进行分组,如()
你能举一个期望输出的例子吗?我发现这个问题有点难理解。重复的项目是一个打字错误?谢谢你,欧根。它非常有用。
SELECT T1.tag,T1.item as item1,T2.item as item2
FROM yourTable T1
INNER JOIN yourTable T2
ON (T1.tag = T2.tag AND T2.item > T1.item)
SELECT COUNT(T1.tag) as relatedCount,T1.item as item1,T2.item as item2
FROM yourTable T1
INNER JOIN yourTable T2
ON (T1.tag = T2.tag AND T2.item > T1.item)
GROUP BY item1,item2