当我键入以下查询时

SELECT
    COUNT(*) AS COUNT
FROM
    OP_table OP
WHERE
    OP.TARGET_ID= 4330000000000369;


我得到55分

当我尝试在联接中使用它时

SELECT
    TS.TARGET_ID, T.TARGET_NAME, T.TARGET_PUBLIC_NAME, count( DISTINCT OP.OP_ID) AS OP_COUNT
FROM
    TS_table TS
INNER jOIN
     T_table T
ON
    T.TARGET_ID = TS.TARGET_ID
OUTER JOIN
    OP_TABLE OP
ON
    OP.TARGET_ID = T.TARGET_ID
WHERE
    TS.TARGET_SERVICE_ID = number


然后我得到

TARGET_ID,    TARGET_NAME,    TARGET_PUBLIC_NAME,    OP_COUNT
number,       target name,    Ebook Central History  33781


计数为33781。我想使用第二功能结构,但计数正确为55

由于某种原因,它获取的是Target_id的计数,而不是Target_service ID的计数

我也注意到如果我输入以下内容

SELECT
    COUNT(*) AS COUNT
FROM
    KB_OBJECT_PORTFOLIOS OP
WHERE
    OP.TARGET_ID=4330000000000383;


该数字对应的位置将产生结果33781。

在连接中的某个位置,它摆脱了目标ID 4330000000000369,并使用了另一个目标ID 4330000000000383

最佳答案

好的,我从愚蠢的列名中混淆了OP.target_ID = TS.target_service_id而不是TS.target_ID ...

关于mysql - 计数记录没有给出正确的数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42952802/

10-12 17:26