当我尝试从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。
我的问题是:我应该如何修复我的查询?感谢。
答案 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