一对多加入

时间:2019-02-22 10:06:03

标签: sql rdbms

我有两个表,第一个是3列As

CR_GENERAL:

  CRNO, | mainCR | CR status  
 -------|--------|------------ 
    555 | Null   | not act 
   5647 | 555    | act     
   7845 | 555    | not act 
    434 | Null   | act    
    566 | 434    | act     
   675  | null   | not act 
    778 | null    | act    
   768  | null   | Can     
  8668  | 555    | can 

第二张表(标识):

     Cr | partner 
 --------|--------- 
  555    | 23453
  434    | 23555
  768    | 26653
  8668   | 23453
  5647   | 23453

我想做的第一件事是:

在Sub处于活动状态时使所有mainCR处于活动状态。 怎么样 ?

在这种情况下,在第一个表中,如果MainCR为空,则CRNO为MAINCR;另一方面,当CRNO处于活动状态时,即使主CR在这种情况下不活动,也必须处于活动状态< / p>

555应该处于活动状态,因为5647和768也都处于活动状态

第二步:

我需要创建一个包含mainCR和所有其他CR的表,并包括这些CR的所有状态,并与IDENTIFICATIONS表联接以添加ID,因为最后我需要获取所有CR的ID状态包括具有此ID的

最后的结果我希望它类似于以下内容:

  partner| main CR | Sub CR   | Sub CR2 | Sub CR3 | Status
 --------|---------|------------------------------
  23453  | 555     |   5647   |  7845   | 8668    |  Act-not Act -can -Act
  23555  | 434     |    566   | Null    | Null    |  Act - Act
  26653  | 768     |   Null   | Null    | Null    |  Can

我尝试了很多查询,但是没有运气,我需要您的帮助

我可以在不同的列中拥有状态,只要它们在同一行中即可

0 个答案:

没有答案