我有這個疑問:SQL查詢覺得沒有什麼,但返回1行的所有空
select problems.problem_id , creator_member_id , problem_title , problem_description , sum(vote) as totalVotes , DAYOFMONTH(problem_date) , DAYNAME(problem_date) , YEAR(problem_date) , MONTH(problem_date) , first_name , last_name , email , small_thumb , mid_thumb
from problems
left join problem_votes
on problems.problem_id = problem_votes.problem_id
left join users
on problems.creator_member_id = users.user_id
left join member_photo
on problems.creator_member_id = member_photo.member_id
where problems.problem_id = 1;
它沒有匹配項,並返回此:
-+--------------------+---------------------+------------+-----------+-------+-------------+-----------+
| problem_id | creator_member_id | problem_title | problem_description | totalVotes | DAYOFMONTH(problem_date) | DAYNAME(problem_date) | YEAR(problem_date) | MONTH(problem_date) | first_name | last_name | email | small_thumb | mid_thumb |
+------------+-------------------+---------------+---------------------+------------+--------------------------+-----------------------+--------------------+---------------------+------------+-----------+-------+-------------+-----------+
| NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL |
+------------+-------------------+---------------+---------------------+------------+--------------------------+-----------------------+--------------------+---------------------+------------+-----------+-------+-------------+-----------+
但我不知道爲什麼它在返回任何東西所有?模式有什麼問題嗎?或者查詢?
我正在檢查它是否返回任何內容,並試圖返回404頁面,但系統認爲有1個返回的行,所以它會混淆我的應用程序。
任何我可能在這裏做錯了?
謝謝!
無法看到它是如何從任何回報你明確強制它只返回其中problems.problem_id = 1的行。 – 2012-01-04 16:36:31
@MarcB我也是 - 非常奇怪,對不對? :) – GeekedOut 2012-01-04 16:44:00
我相信這與使用'sum'這樣的聚合函數沒有'group by'子句有關。添加'group by'子句可能會修復它,或者您可能還需要將條件更改爲'having'而不是'where'。 (或者我可能是完全錯誤的。) – grossvogel 2012-01-04 16:45:05