我刚学数据库没几天,才看到SQL的外连接这里,将书上外连接的例子实践了一下,发现居然是错的,大概书上代码跟我用的MySQL版本不相符吧。有没有人能给我一个外连接的例子?

解决方案 »

  1.   

    感觉一个比较典型的例子可以说是文章已经该文章上带的附件。通常的设计是文章存一张表中,文章的附件存在另一个表中。文章与附件的关系是一对多的关系。也就是一片文章带有多个附件。假如文章表我们称为article(id, title),附件表我们称为attachment(id, articleId, attachmentName)。我们的需求是将所有的文章以及该文章所带的附件一次都查询出来。我们就可使用左外联接。这是因为我们要查询出所有的文章,而文章又有可能不带有附加,因此我们就不能使用内联接。否则我们就只能查询所有带有附件的文章了。因此我们可以这么写sql: select * from article a left join attachment att on a.id = att.articleId