mysql在连接3个表时获取空值

时间:2013-01-27 16:28:07

标签: mysql phpmyadmin

当我尝试从3个表中获取结果时,我只从2获取信息,第三个只返回NULL值。 这是我的查询,我在phpmyAdmin中运行它以在将其放入服务器之前测试它:

SELECT uk2.*,u.*,COALESCE(SUM(n.cost),'not found') as cost 
    FROM std13_k2_users AS uk2  
    JOIN std13_users AS u   
       ON uk2.userID=u.id   
    JOIN std13_k2_naklady AS n   
       ON uk2.userID=n.userID WHERE uk2.userID=986

当SUM不为NULL时,我从所有表中获取值(该表中没有要求的内容)。当它为NULL时,我只从std13_users表中获取值。 std13_k2_users中的值为NULL。

我的问题是:我应该如何修复我的查询?感谢。

1 个答案:

答案 0 :(得分:0)

请尝试此操作,假设您的joins已正确完成表格架构。

SELECT uk2.*,u.*, case when SUM(COALESCE(n.cost,0)) = 0 then 'not found' 
else SUM(COALESCE(n.cost,0)) end as cost 
    FROM std13_k2_users AS uk2  
    JOIN std13_users AS u   
       ON uk2.userID=u.id   
    JOIN std13_k2_naklady AS n   
       ON uk2.userID=n.userID WHERE uk2.userID=986