mysql连接也可以获得未连接的值

mysql连接也可以获得未连接的值,mysql,join,Mysql,Join,以下查询基于我的付款表。它与每日订单表联接。我的每日表格中有账单编号列表。通过这个查询,我只得到已付款的票据编号。希望从daily表中获取账单编号的完整列表,如果未收到付款,则“已收到”列为空。并使用账单编号进行排序 create or replace view view_pymts As SELECT p.`order-id`, p.`order-item-code`,daily.Bill_no,daily.tally_sku,daily.`quantity-purchased` as qua

以下查询基于我的付款表。它与每日订单表联接。我的每日表格中有账单编号列表。通过这个查询,我只得到已付款的票据编号。希望从daily表中获取账单编号的完整列表,如果未收到付款,则“已收到”列为空。并使用账单编号进行排序

create or replace view view_pymts
As SELECT p.`order-id`, p.`order-item-code`,daily.Bill_no,daily.tally_sku,daily.`quantity-purchased` as quantity,daily.`item-price`+daily.`shipping-price`as inv_value,daily.rma_rcvd_amt as return_value, round((SUM(p.amount) + z.other),2) AS received

FROM payments p
INNER JOIN daily ON p.`order-item-code`= daily.`order-item-id`
JOIN (
SELECT `order-id`, 
SUM(CASE WHEN `order-item-code` IS NULL
         THEN amount 
         ELSE 0.0 END) / (COUNT(DISTINCT `order-item-code`)) AS other 
FROM payments
GROUP BY `order-id`
) z
ON p.`order-id` = z.`order-id`
GROUP BY p.`order-id`, p.`order-item-code`

内部联接
替换为
左侧联接
。这将使join右边的表中所有缺少的字段
NULL
(join语句后面的表,而不是之前的表,它被称为join的左边)


编辑:我没有仔细阅读这个问题,@minaverma是正确的。您可以使用
右联接
代替
内部联接
(右联接与左联接相反,使左侧表中缺少的字段为null),或者切换表的顺序并使用
左联接

对于
每日
表中的所有
票据编号
,您应该执行
每日左联合付款
。在表/列标识符中使用“-”只会自找麻烦。