Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果field1=0,则SQLite联接,否则不联接并写入field2_Sql_Database_Sqlite_Select - Fatal编程技术网

如果field1=0,则SQLite联接,否则不联接并写入field2

如果field1=0,则SQLite联接,否则不联接并写入field2,sql,database,sqlite,select,Sql,Database,Sqlite,Select,我有以下表格: -Customer- ID | isUsingStandardNumber | name |... 1 1 Cust1 2 0 Cust2 -CustomerProducts- number | customerNumber | customerID | ... A123 cust2nr123 2 -Request- ID | productNumber

我有以下表格:

-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有entrys(只有第二个请求)但没有第一个请求的结果

你的设计没有多大意义。为什么
customerNumber
会成为
CustomerProducts
的属性?这似乎是一个依赖于
Customer
表的字段。customerNumber表示客户用于产品的编号,而不是客户的编号