第一张表review里有五个字段
[id],[blogid],[userid],[context],[retime]
第二张表userinfo的需要查出来的字段有两个
[username],[images]
userid存储的是第二张表的id,但是这个userid可能为空。我需要得到上面7个字段,当review.userid is null时,userinfo.username和userinfo.images就为空。我写的查询是这样的:
SELECT
[id],
[blogid],
[userid],
[username],
[context],
[retime],
[images]
FROM review,userinfo
where
review.blogid = 6 
and (userinfo.id = review.userid)
or (review.userid is null)这个查询当userid不为空的情况下正常,如果userid为空的话就会把所有userinfo表里的信息也查出来。希望高手帮我指正一下。

解决方案 »

  1.   

    SELECT
            [id],
            [blogid],
            [userid],
            [username],
            [context],
            [retime],
            [images]
        FROM review,userinfo
    where
    review.blogid = 6 and ((userinfo.id = review.userid)or (review.userid is null))
      

  2.   

    select a.id,a.blogid,a.userid,a.context,a.retime,b.username,b.images from reiew a left join userinfo b on a.userid=b.id========================================
    http://www.dbtuning.cn
    主营:中小企业数据库管理、优化、调校服务
    ========================================
      

  3.   


    'trySELECT
            [id],
            [blogid],
            [userid],
            [username],
            [context],
            [retime],
            [images]
        FROM review,userinfo
    where
    review.blogid = 6 
    and (userinfo.id = review.userid and review.userid is not null)
    or (review.userid is null)
      

  4.   

    SELECT
            [id],
            [blogid],
            [userid],
            [username],
            [context],
            [retime],
            [images]
        FROM review,userinfo
    where
    review.blogid = 6 
    and (userinfo.id = review.userid and review.userid is not null)
    or (review.userid is null)
      

  5.   

    SELECT
            [id],
            [blogid],
            [userid],
            [username],
            [context],
            [retime],
            [images]
        FROM review
    left join
    userinfo
    on userinfo.id = review.userid
    where
    review.blogid = 6