【问题标题】:MySQL COUNT return 0MySQL 计数返回 0
【发布时间】:2012-07-27 01:41:42
【问题描述】:

正如您在此处看到的,TotalPic 列返回 0。有什么问题?

SELECT P.*, U.*, COUNT(I.iid) AS TotalPic
FROM post P
LEFT JOIN users U ON U.uid = P.uid
LEFT JOIN images I ON I.pid = P.uid
WHERE P.pid = '2'

我尝试使用LEFT JOIN 这样的线程解决方案MYSQL COUNT return NULL?,但还是一样。

+-----------+
|   images  |
+-----------+
| iid       |
| filename  |
| extension |
| pid       |
| uid       |
+-----------+

+-----------+
|   post    |
+-----------+
| pid       |
| uid       | 
|description|
| created_at|
+-----------+

+-----------+
|   users   |
+-----------+                
| uid   |
| fid       |
| date_reg  |
+-----------+

【问题讨论】:

  • 它返回 0 可能是因为你 WHERE P.pid = 2 消除了匹配的行。
  • 您的 id 列有点神秘,但如果 id 名称中的 ps 和 is 和 us 很重要,那么您似乎正在加入 I 和P 在错误的键上。如果您提供了定义 PK 和 FK 列的 DDL 部分,将会很有帮助。
  • 您显示有关您的表的零信息,零数据,并希望我们解释为什么COUNT 返回零?请提供有关您的架构(表定义)的信息,以及每个表中的示例数据。否则,您的问题毫无意义——您显然有问题导致它不返回任何行,但您没有提供任何我们可以用来帮助您找出原因的东西。
  • 最好还是多学习一下sql/query
  • 我在表 imagespid = 2 中有 3 行

标签: mysql count


【解决方案1】:

没关系,谢谢。我通过分离查询来解决它。我只需要计数,其他都无所谓。

$result = mysql_query("
          SELECT COUNT(iid) AS total_photo 
          FROM images WHERE pid = '$pid'");

【讨论】:

    猜你喜欢
    • 2018-11-19
    • 1970-01-01
    • 2020-12-06
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多