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

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

问题描述:

我想从我的数据库中的两个表中获取数据。这里是我的表可能是什么样子:在单个查询中,我想从两个不同的表中获取数据?

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

我想选择rollno值= 1学期和值= 1和表markmanagment和的学期和学科代码相同价值的标志和主题代码的对应值我想要subject_code的主题名称

这是一个非常基本的连接。使用INNER JOIN仅查看两个表中都有记录的结果 - 我在ON语句中使用了主题代码,但您也可以在这里使用学期。然后在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 
+0

通过在while循环我用系统印码使用结果集rs.next()执行查询后.out.print它没有打印任何东西 – balan

+0

你的问题只是询问有关查询。根据我们提供的信息,上面的一个是正确的,在页面上的其他几个查询也是如此。如果有其他信息需要我们回答这个问题,您必须告诉我们。你没有提到任何关于一段时间的问题 – kbball

+0

是的,我会,.sry – balan

你应该做一个连接表(内 - 右 - 左或完整,取决于你的表)。

像:在一个加入on部分

SELECT * FROM subject_code 
INNER JOIN markmanagment 
ON subject_code.subjectcode = markmanagment.subjectcode; 
WHERE markmanagment.rollno = 1 AND subject_code.semester = 1 

您可以指定多个条件。例如:

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 

希望,我明白你的问题正确。

试图创建相同的问题。

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;