繁体   English   中英

MySQL RIGHT JOIN嵌套子查询

[英]MySQL RIGHT JOIN nested subquery

我有以下查询,并在我的子查询“ c”上有正确的联接

$sqlbsc="SELECT customers.LastName, Sum(IFNULL(scripts.PharmAmount,0)) AS SumPharm, customers.ChemistID, customers.FullName 

   FROM 

   (SELECT scripts.WrittenOff, scripts.PharmAmount, scripts.ChemistID, scripts.ReconcilID, claims.CustomerID FROM scripts 

   INNER JOIN 

   claims ON scripts.ClaimID = claims.ClaimID 

   WHERE 

   (((scripts.WrittenOff)=False) AND ((scripts.ChemistID)='".$_SESSION['chsh']."') AND ((scripts.ReconcilID) IS NULL))) c 

   RIGHT JOIN customers ON c.CustomerID = customers.CustomerID 

   GROUP BY customers.LastName, customers.ChemistID, customers.FullName 

   HAVING ((customers.ChemistID)='".$_SESSION['chsh']."') 

   ORDER BY customers.LastName";

最后就是

Customers.FirstName, Customers.LastName and Sum(Scripts.pharmamount) where Scripts.reconcilID IS NULL

但是我希望所有我的客户都从我的客户表中出现,并且只显示为sum = $0.00

我在Access女士中将ti作为子查询工作,但是上面没有任何帮助。

我的结果对我的子查询SQL是正确的。 当我使用它时,它有效,但是我的主要查询不起作用。

谁能提供一些见识?

修复!!! 2小时..然后发布在这里,我在1分钟内修复自己,大声笑我需要将scripts.pharmamount更改为c.pharmamount,因为它是指子查询而不是实际的表!

最终查询非常相似:

$sqlbsc="SELECT customers.LastName, Sum(IFNULL(c.PharmAmount,0)) AS SumPharm, customers.ChemistID, customers.FullName

FROM

(SELECT scripts.WrittenOff, scripts.PharmAmount, scripts.ChemistID, scripts.ReconcilID, claims.CustomerID FROM scripts

INNER JOIN

claims ON scripts.ClaimID = claims.ClaimID

WHERE

(((scripts.WrittenOff)=False) AND ((scripts.ChemistID)='".$_SESSION['chsh']."') AND ((scripts.ReconcilID) IS NULL))) c

RIGHT JOIN customers ON c.CustomerID = customers.CustomerID

GROUP BY customers.LastName, customers.ChemistID, customers.FullName

HAVING ((customers.ChemistID)='".$_SESSION['chsh']."')

ORDER BY customers.LastName";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM