让我解释一下我的情况,它比标题更清晰!我有两张桌子。让我们看一下这里,我会解释一下我想做什么。
第一张表(课程表)
+------------------+----------------+
| LessonCode | SubjectCode |
+------------------+----------------+
| 1 | 10 |
| 2 | 11 |
| 3 | 12 |
+------------------+----------------+
第二张表(主题表)
+------------------+----------------+------------+
| subjectCode | SubjectName | teacherCode|
+------------------+----------------+------------+
| 10 | Maths | 15 |
| 11 | English | 20 |
| 12 | Greek | 30 |
+------------------+----------------+------------+
我会从表lesson
中选择teacherCode=20
的主题。可以在一个查询中使用吗?
答案 0 :(得分:1)
试试这个:
select *
from lesson l
join subject s on s.subjectCode=l.SubjectCode
where s.teacherCode=20
答案 1 :(得分:1)
要获得教师X的所有课程,您必须加入两个表:
select LessonCode from lesson l
inner join subject s on s.subjectCode = l.SubjectCode
where s.teacherCode = x
这基本上执行以下操作:它创建两个表的叉积,然后删除所有不符合on
子句的行。然后它删除所有不符合where
子句的行。这只留下给定教师X的课程。
答案 2 :(得分:1)
您需要使用简单的连接。
select l.*
from lesson l
join subject s on l.SubjectCode=s.SubjectCode
where s.teacherCode=20
答案 3 :(得分:1)
SELECT
*
FROM
(lesson, subject)
WHERE
lesson.SubjectCode = subject.subjectCode AND
subject.teacherCode = 20
答案 4 :(得分:1)
SELECT SubjectCode
from LessonTbl lt
Left Outer join subjectTbl st
on lt.subjectCode = st.subjectCode
where st.teacherCode=20.
答案 5 :(得分:1)
SELECT A.*
FROM lesson A
JOIN subject B ON A.SubjectCode = B.SubjectCode
WHERE B.teacherCode = '20'
答案 6 :(得分:1)
Select a.*
From Lesson a
Inner Join Subject b on a.SubjectCode = b.SubjectCode
where c.TeacherCode = '20'
这就是全部。只要你知道Subject表中存在每个Lesson的SubjectCode,就像我的例子中那样做一个Inner Join。否则,将其更改为左外连接。