三张表,author paper author_paper
author 作者,主键AuthorID
paper 文章,主键PaperID
因为他们是多对多的关系,所以用第三张表author_paper表示
它的主键是 PaperID,AuthorID。分别引用author和paper表
现在我想查询出所有论文的信息和论文的标题
sql为:
select paper.*,author.* from paper,author_paper,author where paper.PaperID=author_paper.PaperID and author.AuthorID=author_paper.AuthorID order by paper.PaperID,author_paper.AuthorPos
但是由于有的论文的作者没有,因此这样的paper跳过去了。我想查出所以的paper。
记得好像用inner join ,left join 或者 right join中的一个可以实现。不过不太熟悉,不知道怎么用。
谢谢!
author 作者,主键AuthorID
paper 文章,主键PaperID
因为他们是多对多的关系,所以用第三张表author_paper表示
它的主键是 PaperID,AuthorID。分别引用author和paper表
现在我想查询出所有论文的信息和论文的标题
sql为:
select paper.*,author.* from paper,author_paper,author where paper.PaperID=author_paper.PaperID and author.AuthorID=author_paper.AuthorID order by paper.PaperID,author_paper.AuthorPos
但是由于有的论文的作者没有,因此这样的paper跳过去了。我想查出所以的paper。
记得好像用inner join ,left join 或者 right join中的一个可以实现。不过不太熟悉,不知道怎么用。
谢谢!
from author_paper as ap
left join paper as p on ap.PaperID=p.PaperID
left join author as a on ap.AuthorID=a.AuthorID
from (author inner join author_paper using (AuthorID))
right join paper using (PaperID).
[align=center]==== 思想重于技巧 ====
[/align]
.
贴子分数<20:对自已的问题不予重视。
贴子大量未结:对别人的回答不予尊重。
.
如果您问题已经得解决,请您及时结帖给分,以感谢帮助您的朋友。 结帖方法:点击版面右上方或右下方 [管理] ,进入页面后就可以输入密码,分别给分,结帖。
或参考:
http://www.csdn.net/help/over.asp
http://topic.csdn.net/u/20080110/19/7cb462f1-cac6-4c28-848e-0a879f4fd642.html
=============================================================================
问题解决,请及时结贴。
正确结贴方法:
管理帖子-->给分-->输入密码-->结贴.
[align=center]==== 思想重于技巧 ====
[/align]
.
贴子分数<20:对自已的问题不予重视。
贴子大量未结:对别人的回答不予尊重。
.