数据库中三张表关系如图:我现在想要在查询结果中有如下字段:ScoreFormID,ScoreFormName,CourseTypeName,UserTypeName其中,在表EvaluateTable中,UserTypeId和CourseTypeId字段可以为空,但是这字段为空的记录也要显示出来用linq to sql实现是不是不能这样,如果不能有没有其他方法可以实现这个要求,我搞了很久,都没头绪,请各位大侠多多指教啊...

解决方案 »

  1.   

    select a.ScoreFormID,a.ScoreFormName,b.CourseTypeName,c.UserTypeName
    from EvaluateTable a
    left join CourseType b on a.CourseTypeId=b.CourseTypeId
    left join UserType c on a.UserTypeId=c.UserTypeId
      

  2.   


    如果是linq的话
    就去.net版问
      

  3.   

    select  F.ScoreFormID,F.ScoreFormName,C.CourseTypeName,U.UserTypeName from 
    EvaluateTable F
    left join CourseType C on F.CourseTypeId=C.CourseTypeId
    left join UserType U on F.UserTypeId=U.UserTypeId
      两个做链接可以实现
      

  4.   

    var result = from e in context.EvaluateTable join c from in context.CourseType on c.CourseTypeID Equals e.CourseTypeID join u in context.UserType on u.UserTypeID Equals e.UserTypeID select new {e.ScoreFormID,e.ScoreFormName,c.CourseTypeName,u.UserTypeName}
    你试试吧
      

  5.   


    var result = from e in context.EvaluateTable 
    join c from in context.CourseType 
    on c.CourseTypeID Equals e.CourseTypeID 
    join u in context.UserType 
    on u.UserTypeID Equals e.UserTypeID 
    select new {e.ScoreFormID,e.ScoreFormName,c.CourseTypeName,u.UserTypeName}就是Linq中的Join联合查询,相当与SQL中的Inner Join
      

  6.   

    其中context是你的上下文实例对象名称
      

  7.   

    九楼的试了下,好像不行,试了一楼的sql语句可以,所以觉得应该是用左连接...
      

  8.   

    我用1楼的方法得到的结果是:
    这是我想要的结果
    用9楼的方法得到的结果是:linq查询语句应该怎么写,才能得到第一张图的效果