0

当我尝试从 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。

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

4

1 回答 1

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
于 2013-01-27T16:33:08.507 回答