查询不起作用

时间:2015-08-20 13:12:10

标签: mysql sql

我有这个查询,

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

原始表格 enter image description here

新表 enter image description here

我正在准备这样的事情 enter image description here

任何想法可能是什么?

3 个答案:

答案 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日志中遇到任何错误? 检查第二个数据库中的表/列名称是否存在拼写错误。 向我们展示您的桌子,没有它我们无论如何都无法帮助您。