我想从我的数据库中的两个表中获取数据。这是我的表格的样子:
subject_code: semester, subjectcode, subjectname
markmanagment: subjectcode, semester, marks, rollno
我想选择rollno value = 1和semester value = 1及其对应的mark markmanagment标记和主题代码值,以及相同的学期和主题代码值我想要subject_code的主题名
答案 0 :(得分:0)
这是一个非常基本的联接。使用INNER JOIN只查看两个表中都有记录的结果 - 我在ON语句中使用了主题代码,但你也可以在这里使用semester。然后在WHERE子句中指定其他条件。在SELECT语句中,通过以下列格式列出要返回的列:tablename.columnname。我在这里用*来返回所有列。
SELECT *
FROM subject_code sc
INNER JOIN markmanagement mm ON sc.subjectcode = mm.subjectcode
WHERE sc.semester = mm.semester
AND sc.semester = 1
AND mm.rollno = 1
答案 1 :(得分:0)
你应该做一个连接表(内部 - 右 - 左或全,取决于你的表)。
喜欢:
SELECT * FROM subject_code
INNER JOIN markmanagment
ON subject_code.subjectcode = markmanagment.subjectcode;
WHERE markmanagment.rollno = 1 AND subject_code.semester = 1
答案 2 :(得分:0)
您可以在联接的on
部分指定多个条件。例如:
select *
from markmanagement mm
join subject_code sc
on mm.subjectcode = sc.subjectcode
and mm.semester = sc.semester
where mm.semester = 1
and mm.rollno = 1
答案 3 :(得分:0)
希望,我理解你的问题。
试图创造同样的问题。
Sqlfiddle链接 - http://sqlfiddle.com/#!9/5a074b/2/0
create table subject_code
(
semester int,
subjectcode varchar(100),
subjectname varchar(100)
);
insert into subject_code values(1,'S01','subject1');
insert into subject_code values(1,'S02','subject2');
insert into subject_code values(2,'S01','subject1');
create table markmanagment
(
subjectcode varchar(100),
semester int,
marks int ,
rollno int
);
insert into markmanagment values('S01',1,75,1);
insert into markmanagment values('S02',1,80,1);
insert into markmanagment values('S01',2,85,1);
我认为下面的查询会有所帮助
select b.marks , b.subjectcode , a.subjectname
from subject_code a, markmanagment b
where a.semester = b.semester
and a.subjectcode = b.subjectcode
and a.semester = 1
and b.rollno = 1;