Mysql 根据第二个表的另一个值(sql)在第一个表中选择一个值
让我解释一下我的情况,它确实比标题更清楚!我有两张桌子。让我们看一下这里,然后我会告诉你我想做什么 第一张桌子(课桌) 第二张表(主题表) 我将从表Mysql 根据第二个表的另一个值(sql)在第一个表中选择一个值,mysql,sql,Mysql,Sql,让我解释一下我的情况,它确实比标题更清楚!我有两张桌子。让我们看一下这里,然后我会告诉你我想做什么 第一张桌子(课桌) 第二张表(主题表) 我将从表lesson中选择具有teacherCode=20的主题。只需一次查询就可以了?试试以下方法: select * from lesson l join subject s on s.subjectCode=l.SubjectCode where s.teacherCode=20 试试这个: select * from lesson l join
lesson
中选择具有teacherCode=20
的主题。只需一次查询就可以了?试试以下方法:
select *
from lesson l
join subject s on s.subjectCode=l.SubjectCode
where s.teacherCode=20
试试这个:
select *
from lesson l
join subject s on s.subjectCode=l.SubjectCode
where s.teacherCode=20
要获得X老师的所有课程,您必须加入两个表:
select LessonCode from lesson l
inner join subject s on s.subjectCode = l.SubjectCode
where s.teacherCode = x
这基本上是这样做的:它创建两个表的叉积,然后删除所有不符合on子句的行。然后删除所有不符合
where
子句的行。这只剩下给定教师X的课程。要获得教师X的所有课程,您必须同时加入两个表:
select LessonCode from lesson l
inner join subject s on s.subjectCode = l.SubjectCode
where s.teacherCode = x
这基本上是这样做的:它创建两个表的叉积,然后删除所有不符合on子句的行。然后删除所有不符合
where
子句的行。这只剩下给定教师X的课程。您需要使用一个简单的连接
select l.*
from lesson l
join subject s on l.SubjectCode=s.SubjectCode
where s.teacherCode=20
您需要使用一个简单的连接
select l.*
from lesson l
join subject s on l.SubjectCode=s.SubjectCode
where s.teacherCode=20
就这些。只要您知道每个课程的SubjectCode都存在于Subject表中,只需像我的示例中那样进行内部联接。否则,将其更改为左外部联接
就这些。只要您知道每个课程的SubjectCode都存在于Subject表中,只需像我的示例中那样进行内部联接。否则,将其更改为左外部联接。表
lesson
的列SubjectCode
是大写的S
。我认为mySQL在列名中不区分大小写,但是我修正了这个例子只是为了安全表lesson
的列SubjectCode
是大写的S
。我不认为mySQL在列名上区分大小写,但我修正了这个例子只是为了安全谢谢你的帮助。为什么如果一个doselect*from lesson l..
我得到了一个唯一的统一表,其中包含所有两个表列?是的,你会的。就在你的数据库管理系统上试试吧。我误读了你的评论,错过了为什么Select*
将获取所有联接表的所有列,Select t.*
将获取表t
的所有列(必须出现在from/join子句中),Select x
将生成列x
,如果它只出现在一个联接表中,select t.x
将检索表t
的x
列。感谢您的帮助。为什么如果一个doselect*from lesson l..
我得到了一个唯一的统一表,其中包含所有两个表列?是的,你会的。就在你的数据库管理系统上试试吧。我误读了你的评论,错过了为什么Select*
将获取所有联接表的所有列,Select t.*
将获取表t
的所有列(必须出现在from/join子句中),Select x
将生成列x
,如果它只出现在一个联接表中,select t.x
将检索表t
的x
列。
SELECT SubjectCode
from LessonTbl lt
Left Outer join subjectTbl st
on lt.subjectCode = st.subjectCode
where st.teacherCode=20.
SELECT A.*
FROM lesson A
JOIN subject B ON A.SubjectCode = B.SubjectCode
WHERE B.teacherCode = '20'
Select a.*
From Lesson a
Inner Join Subject b on a.SubjectCode = b.SubjectCode
where c.TeacherCode = '20'