[两个右联接选择一个查询mysql

问题描述 投票:0回答:1

我需要连接两个表,每个表必须具有共同的关系。

一个表用于“购买”,另一个表用于“付款”,两者均与“客户”表直接相关。

我尝试过,但无济于事。

SELECT c.id AS idclient, c.name AS nameclient, p.id AS idpayment, cp.id AS idpurchases 
            FROM clients AS c
                RIGHT JOIN payments AS p ON c.id = p.client
                RIGHT JOIN purchases AS cp ON c.id = cp.client

这些表具有当前不需要的不同结构和其他字段。这些字段基本上就是选择的字段。

php mysql sql
1个回答
0
投票

据我所知,您需要LEFT JOIN。意味着您的客户没有购买,也没有付款。或客户正在购买但仍未付款没有客户就没有购买也没有付款!

SELECT c.id AS idclient, c.name AS nameclient,
       p.id AS idpayment,
       cp.id AS idpurchases 
FROM clients AS c
LEFT JOIN payments AS p ON c.id = p.client
LEFT JOIN purchases AS cp ON c.id = cp.client

可能的输出[idclient,name, idpay,idPur][1,A,2,3]-好的[2,B,null,4]-没有付款:确定[3,C,null,null]-无需购买,无需付款:确定

或使用JOIN(inner)来获取无空值[1,A,2,3]

© www.soinside.com 2019 - 2024. All rights reserved.