我一直在为这个问题绞尽脑汁,我相当肯定这是一个向前的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相关的书籍和它们的信息。任何帮助都是非常感谢的!
发布于 2011-10-30 03:24:25
SELECT * FROM class
JOIN ClassBook on class.id = ClassBook.ClassID
JOIN books on ClassBook.BookID = books.id
WHERE Class.ID = 3;这是用于将所有内容链接在一起的格式。请注意,on子句通常用于描述与所连接的表相关的条件。where子句用于限制所选的记录。
发布于 2011-10-30 03:23:36
尝尝这个
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*本身将显示两个表中的所有列。
https://stackoverflow.com/questions/7941113
复制相似问题