【发布时间】:2017-03-22 21:25:25
【问题描述】:
当我输入以下查询时
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
【问题讨论】:
-
我认为你的内部连接应该是
WHERE OP.TARGET_ID= 4330000000000369而不是WHERE TS.TARGET_SERVICE_ID = number -
上述查询只会产生语法错误,因为您没有指定外部查询是左还是右。
标签: mysql