如何使用外键中的多个值从其他表中获取记录。 例如我之前是一名新生的主题故事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 ?
答案 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