我有两个表,其中一个有唯一的ID,另一个没有,有点像这样:
**Table1**
ID OTHERSTUFF
id1 ...
id1 ...
id2 ...
id2 ...
id3 ...
**Table2**
UID MORESTUFF
uid1 ...
uid2 ...
uid3 ...
每个id都显示为uid的子字符串,但它们可能出现在多个中,我想计算一下有多少个。
我尝试了以下查询(没有给出我想要的结果):
select distinct ID, count(Table2.UID)
from Table1
inner join Table2 on locate(ID, Table2.UID) > 0
group by ID
我希望这样做的是:对于表1中每个不同的id,计算表2中uid包含有问题的id的条目数。
我认为最终会发生的是,对于每个id,它最终会计数(#对应的uid)x(#出现次数),然后返回不同(id,count)对的列表。事实上,我得到的结果有多个id,它们的数量相当大,但是当我查询包含这些特定id的uid时,每个id只得到1个。
我应该如何以不同的方式编写查询,以便每个不同的id只处理一次?
2条答案
按热度按时间8dtrkrch1#
如果uid是由id组成的字符串,可以尝试使用like和table作为基表
c3frrgcw2#
首先需要在子查询中获取不同的id值:
或者,您可以通过使用
COUNT(DISTINCT Table2.UID)
在原始查询中。