SQL - 输出中的所需字段在其他表中不可用

时间:2016-10-25 13:24:37

标签: mysql sql

我们有两张桌子:

  1. tbl_serviceData(id是主键)
  2. tbl_CustomerData(s_id是外键)
  3. 现在如cust_name = kiran的图片所示,outout是okey,但我需要的是我希望这些服务也以该客户的名义服务,尽管他还没有使用过它们。

    例如,kiran已经使用了牛奶,水,咖啡,午餐等服务,而且他支付了正确的费用,但我希望输出中的所有剩余服务都没有价值。例如,kiran没有使用早餐,茶和晚餐服务,但我仍然希望它们在输出中具有零价值。 请记住,在tbl_Customerdata表格中,没有以kiran的名义提供早餐,茶和晚餐服务。

    tbl_Servicedata and tbl_CustomerData

    output and required output

2 个答案:

答案 0 :(得分:0)

with T
    as (select C.S_Id, C.Paid
    from tbl_CustomerData as C
    where c.Cust_Name = @CUST_NAME)
select
        S.SERVICESS as Servicess,
        isnull(T.Paid,0) as Paid
    from tbl_Servicedata as S
        left join T as T on T.S_Id = S.ID
    order by isnull(T.Paid,0) desc

答案 1 :(得分:0)

在这种情况下使用LEFT JOIN,

select A.SRVC, COALESCE(A.Paid, 0) Paid 
from tbl_CustomerData A left join tbl_Servicedata B on (A.S_Id = B.ID) 
where A.Cust_Name = @CUST_NAME