我遇到了使用特定条件检索数据的情况,并且两个表之间的唯一关系是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。希望这更有意义。
答案 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