如何在没有外键的情况下转介?

时间:2018-04-28 11:02:21

标签: mysql sql

创建两个表:

课程(Course_id(主键),Course_name)

学生(Roll_no(主键),姓名,课程_id(外键))和检索在“BSC”课程中录取的所有学生的姓名。

让BSC的course_id为105。

查询将是: SELECT Name FROM Student WHERE Course_id = 105

我可以在不知道Course_id(仅使用Course_name)的情况下查询学生的姓名吗?

3 个答案:

答案 0 :(得分:3)

您可以在表格之间使用内部联接

  SELECT s.Name 
  FROM Student s  
  INNER JOIN Course c on c.course_id  = s.Course_id
  WHERE c.Course_name = 'your_course_name'

或使用like

  SELECT s.Name 
  FROM Student s  
  INNER JOIN Course c on c.course_id  = s.Course_id
  WHERE c.Course_name like 'your_course_name'

答案 1 :(得分:3)

或使用WHERE IN (...)

SELECT 
 Student.Name
FROM 
 Student 
WHERE
 Student.Course_id IN (
  SELECT
   Course.cource_id 
  FROM 
   Course
  WHERE
   Course.Name = 'BSC'
)

答案 2 :(得分:0)

是的,可以。

SELECT st.Name 
FROM Student st  
INNER JOIN Course c on c.course_id  = st.Course_id
WHERE 
c.Course_name = 'Course_Name';