我有这个查询,
SELECT DISTINCT username, publishedapp
FROM tbl_name
WHERE username in
(
SELECT username
FROM tbl_name
WHERE publishedapp = \"Mencap@Work2-1\"
)
AND publishedapp NOT LIKE \"%Desktop%\"
AND publishedapp NOT LIKE \"%RDP%\"
GROUP BY username
HAVING COUNT(DISTINCT publishedapp) > 1
完全适用于数据库,表而不是另一个数据库,数据库具有相同类型的内容,只有不工作的内容具有更多行,因为它已经收集了更长时间的信息。
在较新的表上,我将查询结果为0,该表肯定有内容,因为我已经看到PHPMyadmin上的行和列,并且还有用户运行此查询
SELECT username, publishedapp
FROM tbl_name
ORDER BY username
我正在准备这样的事情
任何想法可能是什么?
答案 0 :(得分:1)
您要对此类问题进行故障排除是将查询分解为多个部分,直到找到问题的根源。有时您可能需要在连接中使用select *或指定列,或者在最终产品中未返回的where子句中查看正在进行的操作。我会做以下的事情,运行每一个,直到你看到记录的位置。:
SELECT username
FROM tbl_name
WHERE publishedapp = \"Mencap@Work2-1\"
SELECT *
FROM tbl_name
WHERE username in
(
SELECT username
FROM tbl_name
WHERE publishedapp = \"Mencap@Work2-1\"
)
AND publishedapp NOT LIKE \"%Desktop%\"
SELECT *
FROM tbl_name
WHERE username in
(
SELECT username
FROM tbl_name
WHERE publishedapp = \"Mencap@Work2-1\"
)
AND publishedapp NOT LIKE \"%Desktop%\"
AND publishedapp NOT LIKE \"%RDP%\"
SELECT username, publishedapp, COUNT(DISTINCT publishedapp)
FROM tbl_name
WHERE username in
(
SELECT username
FROM tbl_name
WHERE publishedapp = \"Mencap@Work2-1\"
)
AND publishedapp NOT LIKE \"%Desktop%\"
AND publishedapp NOT LIKE \"%RDP%\"
GROUP BY username,publishedapp
请注意,我正确使用了group by。在任何情况下,您都不应该按照您的方式使用组,结果可能不正确。您应该按照预期的方式使用组以及每个其他数据库的工作方式,方法是在select中包含不属于聚合的所有列。
答案 1 :(得分:0)
尝试简化查询。如果我理解正确:
SELECT username, group_concat(publishedapp)
FROM tbl_name
WHERE publishedapp NOT LIKE '%Desktop%' AND
publishedapp NOT LIKE '%RDP%'
GROUP BY username
HAVING COUNT(DISTINCT publishedapp) > 1 AND
SUM(publishedapp = 'Mencap@Work2-1') > 0;
也有可能虽然名称看起来相似但它们不是。例如,应用程序名称末尾可能有尾随空格。这会回报你的期望吗?
select *
from tbl_name
where publishedapp = 'Mencap@Work2-1'
答案 2 :(得分:-1)
可能秒数据库中的所有行都没有publishedapp > 1
??
检查一下!
您是否在DB日志中遇到任何错误? 检查第二个数据库中的表/列名称是否存在拼写错误。 向我们展示您的桌子,没有它我们无论如何都无法帮助您。