Mysql 连接多个外键值

Mysql 连接多个外键值,mysql,foreign-keys,Mysql,Foreign Keys,如何使用外键中的多个值从其他表中获取记录。 e、 我以前是一个新生的故事ID。我从subject表中获取subject名称。但是现在我正在集成多个科目的功能,这意味着我的ID列在student中看起来像:120、140,这意味着两个科目现在我如何从另一个表中获取科目名称,例如,我希望在加入它们时,在列中显示英语、数学 这是我当前的查询: 现在,学生和书籍之间有了多对多的关系。为了获得最佳实践,您必须更改数据库结构 解释 让我在这里简单地解释一下 在这种情况下,将形成第三个表,通常称为连接表。两个

如何使用外键中的多个值从其他表中获取记录。 e、 我以前是一个新生的故事ID。我从subject表中获取subject名称。但是现在我正在集成多个科目的功能,这意味着我的ID列在student中看起来像:120、140,这意味着两个科目现在我如何从另一个表中获取科目名称,例如,我希望在加入它们时,在列中显示英语、数学

这是我当前的查询:


现在,学生和书籍之间有了多对多的关系。为了获得最佳实践,您必须更改数据库结构

解释

让我在这里简单地解释一下

在这种情况下,将形成第三个表,通常称为连接表。两个表的所有ID实际上都是该表的行

例如

您可以按照以下方式实现它

 student: student_id, first_name, last_name
 books: book_id, book_name, book_author_etc
 student_books: book_id, student_id     # the junction table
示例查询:

 // To get all the books for a student. 

 SELECT b.book_id, name
    FROM student_books sb 
    INNER JOIN books b ON b.book_id = sb.book_id
    WHERE sc.student_id = Y

你确定你在使用MySQL吗?它没有ROWNUM。请不要在表列中放置逗号分隔的值。使用多对多关系表,每行一对。
 // To get all the books for a student. 

 SELECT b.book_id, name
    FROM student_books sb 
    INNER JOIN books b ON b.book_id = sb.book_id
    WHERE sc.student_id = Y