2016-04-13 116 views
0

我做了两个表这样如何限制左连接?

degree_plan        student_record 
------------------------------  ---------------------------- 
major course  course_no  ID  course_no  grade   
------------------------------  ---------------------------- 
COE  COE200  1    4455  1   A 
COE  COE305  2    4455  2   C 
COE  COE400  3    3333  4   B 
SWE  SWE214  4 
SWE  SWE344  5 
SWE  SWE444  6 

course_no是我如何写SQL查询来给我这样where ID=4455 and the major = COE

-------------------------- 
major course  grade 
-------------------------- 
COE  COE200  A 
COE  COE305  C 
COE  COE400  NULL 
+0

提示:'WHERE'。 '左加入'。 –

+0

只需在course_no上进行内连接或左连接。查看一些关于这个连接的文档。 –

+0

我试了左连接,但检索所有左边的tablel – Steven

回答

0

再尝试这种方式

select a.mjor, a.course, b.grade 
from degree_plan as a 
left join student_record as b on a.course_no=b.course_no and b.id=4455 
where a.major='COE' 
+0

虽然这段代码可能回答这个问题,但提供 关于_why_和/或_how_的附加上下文会回答 这个问题会显着改善它的长期 值。请[编辑]你的答案,添加一些解释。 –

+0

@TobySpeight我是开发人员。我无法详细解释。我刚刚给出解决方案。 –

0
select * 
from degree_plan 
left join studen`t_record 
on studen`t_record.course_no = degree_plan.course_no 
where major = 'COE' 

之间的关系你需要专业在哪里过滤

+0

虽然此代码可能回答问题,但提供 关于_why_和/或_how_的其他上下文,回答 问题将显着提高其长期价值。请[编辑]你的答案,添加一些解释。 –

+0

@TobySpeight目前它有一个可接受的答案 – Paparazzi

0

试试这个:

select a.major, a.course, b.grade 
from degree_plan a 
left join studen`t_record b on b.course_no = a.course_no 
where a.major = 'COE' 

你甚至都不需要像条款,因为主要的领域并不比COE

0
SELECT degree_plan.major, degree_plan.course, studen't_record.grade 
    FROM degree_plan 
LEFT JOIN Student_record ON degree_plan.course_no=student_record.course_no where degree.major='COE';