gpt4 book ai didi

mysql - 对于表中的每个不同 ID,计算不同表中相关 UID 的数量。 (SQL)

转载 作者:行者123 更新时间:2023-11-29 09:54:31 25 4
gpt4 key购买 nike

我有两个表,其中一个有唯一的 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

我想要执行的操作如下:对于 Table1 中的每个不同 ID,计算 Table2 中 UID 包含相关 ID 的条目数。

我认为最终发生的情况是,对于每个 ID,它最终都会计数(相应 UID 的数量)x(出现次数),然后返回不同的(ID,计数)对的列表。事实上,我得到的结果有多个 ID,其数量相当大,但是当我查询包含这些特定 ID 的 UID 时,我只得到 1 个。

我应该如何以不同的方式编写查询,以便每个不同的 ID 只被处理一次?

最佳答案

您需要首先在子查询中获取不同的 id 值:

select t1.ID, count(Table2.UID) 
from (SELECT DISTINCT ID FROM Table1) AS t1
inner join Table2 on locate(t1.ID, Table2.UID) > 0
group by t1.ID;

或者,您可以通过在原始查询中使用 COUNT(DISTINCT Table2.UID) 来忽略重复的联接(但可能无意中也忽略了 table2 中的重复匹配)。

关于mysql - 对于表中的每个不同 ID,计算不同表中相关 UID 的数量。 (SQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54098451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com