从缺少链接

时间:2018-04-18 14:30:43

标签: sql sql-server

我遇到了使用特定条件检索数据的情况,并且两个表之间的唯一关系是ID。见下表。 这种情况的目标连接应该是co_id,但是table2没有此列。我需要使用LDR = 1和电子邮件=''来检索co_ID中的任何人。和Desig =' 0'。在下面的考试中,结果应该是&00; 3900383'在DD 0000中没有人有desg 1而LDR是1但是电子邮件是空的。

简单的语法错过了连接部分。

select Desig, LDR,Table2.*  
from  Table1, Table2 
where (LDR =1 and email ='') and (Desig = 0)

Table1 
id      Desig LDR    
0000121  0     0        
0000383  0     1                
0000509  0     1       
0000593  1     0      
0000626  1     0
0000526  0     1
0000523  0     0

------------------------------
Table2
id     | co_id   |  FULL_NAME    |     EMAIL
0000121  DD 0000    Mary Jen    
0000383  DD 0000    Mat Howard       
0000509  YY 0000    Dorothy Bolan    example1@example.com
0000593  YY 0000    Pat Schu    
0000626  XX 0000    Lisa m    
0000526  XX 0000    Lori de
0000523  XX 0000    Donna tr    

总结一下,我需要的是用ldr = 1和email ='来检索id。 '如果每个co_id的desig = 0。希望这更有意义。

2 个答案:

答案 0 :(得分:1)

您可以从一个表的一列连接到第二个表中的多个列,如下所示:

select * from table1 a join table2 b on a.id=b.id or a.id=b.co_id  
where  LDR =1 and email =''  and  Desig = 0 

答案 1 :(得分:1)

它为您的数据提供了正确的结果。

create table #table(id varchar(10),Design int,LDR int)

create table #table1(id varchar(10),co_id varchar(10),fname varchar(10),email varchar(20))

insert into #table values('0000121',0,0),('0000383',0,1),('0000509',0,1),('0000593',1,0)

insert into #table1 values('0000121','DD 0000','Mary Jen' ,''),('0000383','DD 0000','Mat Howard' ,''),('0000509','YY 0000','Dorlan' ,'example1@exle.com'),('0000593','YY 0000','Pat Schu' ,'')

select  t1.Design,t1.LDR,t2.* from #table t1 join #table1 t2 on t1.id = t2.id and t1.LDR = 1 and t2.email ='' and t1.Design = 0