加入多个外键值

时间:2017-02-10 07:40:30

标签: mysql foreign-keys

如何使用外键中的多个值从其他表中获取记录。 例如我之前是一名新生的主题故事ID。我从主题表中获取主题名称。但现在我正在整合多个科目的功能,这意味着我在学生中的ID列看起来像:120,140(这意味着两个科目)现在如何从另一个表中获取科目名称(例如我希望它显示为ENGLISH ,当我加入时,列中的MATHS)。

这是我当前的查询

SELECT t.*
FROM
  (SELECT ROWNUM AS rn,
          t.*
   FROM
     (SELECT t.*,
             s.subject_name
      FROM STUDENT t
      LEFT JOIN SUBJECTS s ON t.subject_id=s.subject_id) t) t
WHERE rn BETWEEN ? AND ?

1 个答案:

答案 0 :(得分:1)

现在你在学生和书籍之间有很多很多关系。并且您必须更改数据库结构以获得最佳实践。

解释here

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

在这种情况下,制定了第三个表,通常称为连接表。这两个表的所有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