即使条件不满足,sql查询也可以获取数据

时间:2012-07-30 07:20:01

标签: mysql

我在sql中不擅长,所以请不要骂我这个基本问题。目前我在其他技术上做了大量的功课,所以当我有时间学习时,我会改进sql。无论如何,让我们来点。

我的问题是针对以下查询。我试图从三个表中获取数据并且只要满足所有条件就可以正常工作但问题是对于发布可能会发生图像不存在的情况,即没有记录图像表中的帖子然后{{1}条件失败并且没有返回行但是我想要返回行,即使图像中没有用于发布的记录。在这种情况下,为图像路径列返回null。

post.post_id = img.post_id and img.sequence='1'

如果所有条件满足,那么O / P就像

SELECT 
    img.path as path, pav.value_text as beds, post.post_id as postID 
FROM 
    postings post, post_attributes_values pav, images img 
where 
    post.post_id = pav.post_id and post.status !='expired' and pav.attr_id='33' and post.post_id = img.post_id and img.sequence='1' and post.post_id=49

但如果 path beds postId ----------------------------------------------- saome path value 2 49 条件不满足,那么O / P应该是:

post.post_id = img.post_id and img.sequence='1'

1 个答案:

答案 0 :(得分:1)

使用左外连接

SELECT 
    img.path as path, pav.value_text as beds, post.post_id as postID 
FROM 
    postings post 
    inner join post_attributes_values pav on post.post_id = pav.post_id and pav.attr_id='33' 
    left outer join images img on post.post_id = img.post_id and  img.sequence='1' 
where  post.status !='expired' and post.post_id=49