【发布时间】:2011-04-23 08:21:05
【问题描述】:
假设我有两张表,一张是博客文章,另一张是读者和他们的 cmets:
表 1:
表名:BlogPosts:
结构:
id (int)
title (string)
表 2:
表名:读者:
id (int)
blog_post_id (int)
name (string)
comment (string)
在 Readers 表中,blog_post_id/name 上有一个唯一的复合键(即每个读者每篇文章一条评论),尽管这对我的问题可能无关紧要。
我希望能够进行单个查询,告诉我特定读者对每个 BlogPost 的评论是什么,但它应该包括没有为该读者输入评论的 BlogPost(因此查询应该为每个返回一行数据库中的博客文章)。
我尝试了几种看起来像这样的变体:
SELECT
BlogPosts.id,
BlogPosts.title,
Readers.name,
Readers.comment
FROM
BlogPosts
RIGHT JOIN Readers ON
(BlogPosts.id = Readers.blog_post_id)
WHERE Readers.name = "joe"
..这只是返回实际上有来自 joe 的评论的行。每当我包含 where 子句时,我能够获取所有博客文章的其他变体都会给我一个无效的标识符。
我正在使用 Oracle Express 10g,以防万一。
感谢您的帮助。
【问题讨论】: