首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Map表查询两个数据库

使用Map表查询两个数据库
EN

Stack Overflow用户
提问于 2011-10-30 03:20:02
回答 2查看 88关注 0票数 0

我一直在为这个问题绞尽脑汁,我相当肯定这是一个向前的enough..but,我找不到答案。

我要做的是从两个表中提取信息。我是新加入的。我猜作为一个实际的例子,假设我有一个图书数据库(id、标题、作者、版本、年份)。然后我有一个班级的数据库(id,科目,教师)。有些班级将使用同一本书。因此,我创建了一个映射表,如下所述:

Select-Query/Joinamanytomanymaptable.htm">http://www.java2s.com/Tutorial/MySQL/0040_Select-Query/Joinamanytomanymaptable.htm

我创建了一个名为ClassBook的表,其中类id (ClassID)列在一列中,图书id (BookID)列在另一列中。

我想要的是根据类来绘制图书信息。因此,如果class id是3,我想要与该类关联的所有图书及其信息。下面是我正在查询的内容的一个示例:

SELECT * FROM ClassBook JOIN books ON ClassID=3

在这个查询中,如果Class id (3)在表(ClassBook)中出现了8次,它将输出每本书及其信息8次。我只想要与类id 3相关的书籍和它们的信息。任何帮助都是非常感谢的!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-30 03:24:25

代码语言:javascript
复制
SELECT * FROM class
JOIN ClassBook on class.id = ClassBook.ClassID
JOIN books on ClassBook.BookID = books.id
WHERE Class.ID = 3;

这是用于将所有内容链接在一起的格式。请注意,on子句通常用于描述与所连接的表相关的条件。where子句用于限制所选的记录。

票数 0
EN

Stack Overflow用户

发布于 2011-10-30 03:23:36

尝尝这个

代码语言:javascript
复制
SELECT books.* FROM ClassBook CB
JOIN books ON  CB.bookid=Books.id
WHERE cb.ClassID=3 

连接将创建一个更大的“结果”,其中包含类book表中的所有列和book表中共享相同图书Id号的所有列……然后,WHERE子句只显示ClassID=3中使用的较大结果的结果。books.*语法只显示books表中的列,而a*本身将显示两个表中的所有列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7941113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档