Mysql 如何在没有外键的情况下引用?

Mysql 如何在没有外键的情况下引用?,mysql,sql,Mysql,Sql,创建两个表: 课程(课程id(主键)、课程名称) 学生(卷号(主键)、姓名、课程id(外键))并检索课程“BSC”中录取的所有学生的姓名 让BSC的课程id为105 将为其执行以下查询: 从课程id=105的学生中选择姓名 我是否可以在不知道课程id的情况下查询学生姓名(仅使用课程名称) 可以在表之间使用内部联接 SELECT s.Name FROM Student s INNER JOIN Course c on c.course_id = s.Course_id WH

创建两个表:

课程(课程id(主键)、课程名称)

学生(卷号(主键)、姓名、课程id(外键))并检索课程“BSC”中录取的所有学生的姓名

让BSC的课程id为105

将为其执行以下查询: 从课程id=105的学生中选择姓名


我是否可以在不知道课程id的情况下查询学生姓名(仅使用课程名称)

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

  SELECT s.Name 
  FROM Student s  
  INNER JOIN Course c on c.course_id  = s.Course_id
  WHERE c.Course_name = 'your_course_name'
或者像这样使用

  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'

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

  SELECT s.Name 
  FROM Student s  
  INNER JOIN Course c on c.course_id  = s.Course_id
  WHERE c.Course_name = 'your_course_name'
或者像这样使用

  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'
或者使用(…)中的
WHERE

或者使用(…)中的
WHERE

是的,你可以

SELECT st.Name 
FROM Student st  
INNER JOIN Course c on c.course_id  = st.Course_id
WHERE 
c.Course_name = 'Course_Name';
是的,你可以

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

学生表中没有course_name属性。学生表中没有course_name属性。使用SELECT name From student和SELECT s.name From student s有什么区别?最好在MySQL@rgo中使用别名或完全量化的表名,这样MySQL在创建子查询时就不会混淆列正在使用中(注意,本查询案例中没有)我的意思是在一般用法->在本例中,第一个查询可能会出现错误使用SELECT Name From Student和SELECT s.Name From Student s之间的区别是什么?最好在MySQL@rgo中使用别名或完全量化的表名,这样MySQL在使用子查询时就不会混淆列(请注意,不是在本查询案例中)我的意思是在一般用法->在本例中,第一个querycorrect可能会出现错误,但in子句通常不会产生比inner更好的性能..join..反正upvotedcorrect但in子句通常不会产生比inner..join..反正upvotedcorrect更好的性能