现在有3张表
表一:EID (ID)
ENAME(名称)
表二:ESID(ID)
EID(外键,表一ID)
SID(外键,表三ID)
表一:SID (ID)
SNAME(名称)
现在需要做的是查询出表一的所有信息,并且显示在表二中是否有关联信息存在。如果有显示1没有显示0。从外部会传入表三的ID作为查询条件。
以下是我的语句:
SELECT ei.eid, ei.ename, ei.edept, test = CASE WHEN lifnr IS NOT NULL AND
es.SID = '1' THEN 1 ELSE 0 END
FROM TABLE1 ei LEFT OUTER JOIN
TABLE2 es ON ei.EID = es.EID
不过这很明显是错的。表二没有数据的时候数据看起来没问题,但是一旦有数据就会出错。数据库是SQL SERVER2000。
------解决方案--------------------
- SQL code
select a.eid, a.ename, case when b.sid is null then 0 else 1 end as flagfrom table1 a left join table2 b on a.eid = b.eid
------解决方案--------------------
+1