在一个查询中,我想从两个不同的表中获取数据?

时间:2017-02-12 19:30:04

标签: mysql sql

我想从我的数据库中的两个表中获取数据。这是我的表格的样子:

subject_code:  semester, subjectcode, subjectname
markmanagment: subjectcode, semester, marks, rollno

我想选择rollno value = 1和semester value = 1及其对应的mark markmanagment标记和主题代码值,以及相同的学期和主题代码值我想要subject_code的主题名

4 个答案:

答案 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;