SQLite JOIN if field1 = 0否则不加入并写入field2

时间:2017-02-23 17:40:28

标签: sql database sqlite select

我有这张表:

-Customer-
ID | isUsingStandardNumber | name |...
1    1                       Cust1
2    0                       Cust2


-CustomerProducts-
number | customerNumber | customerID | ...
A123     cust2nr123       2

-Request-
ID | productNumber | customerID | ...
1    A123           1
2    A123           2

现在我尝试使用select:

显示此表
**SELECT Result**
RequestID | productNumber | customerNumber | customer
1           A123            A123             Cust1
2           A123            cust2nr123       Cust2

这意味着如果客户使用自己的号码,它应该是“CustomerProducts”中的条目。否则,“customerNumber”列应与“productNumber”具有相同的条目。我试过这个:

SELECT  Req.ID as 'Request Nr', 
  Prod.productNumber as 'Product Nr', 
   Case WHEN Cust.isUsingStandardNumber = 1
   THEN Prod.productNumber
   ELSE CustProd.customerNumber END as 'Customer Nr',
  Cust.name as 'Customer'
FROM Request Req
JOIN Customer Cust ON Cust.ID = Req.customerID
LEFT JOIN CustomerProducts CustProd ON CustProd.pn = Req.pn AND Req.customerID = CustProd.customerID

现在我只看到CustomerProducts表所委托的结果(只有第二个请求),而不是第一个请求。

0 个答案:

没有答案