我需要select * FROM sections
并获取每行的列值以填充JTable
。我的问题是部分表上的adviserId
列是INT
因为我在每一行都得到每列的结果集,所以我不能发出WHERE
子句。我想到了子查询,但由于Id
在每一行都不同,因此Id
子句中不能提供预定的WHERE
。
因此,如果我运行存储过程,我只会获得int
的{{1}}值,而不是教师的名字。
我有教师和部分表。
教师
adviserId
节
id PK INT
lastName
firstName
middleName
isAdviser
status
最好的方法是什么?我希望你能提供帮助。
感谢。
+++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++ 我根据每个人的建议创建了最终的存储过程。 (再次感谢。)
id PK
name
adviserId FK-- REFERENCING `id` column ON teacher table
答案 0 :(得分:3)
是的,我也是这么认为的,一个简单的inner join
将会完成你的工作。试试下面的例子..
create table JTable as select T.id as Tid,T.lastName,T.firstName,T.middleName,T.isAdviser,T.status,S.id as Sid,S.name,S.adviserId
from Sections as S
inner join Teachers as T on T.id = S.adviserId
您可以在此处应用left join
,以确保您拥有与教师数据或与空数据相关的部分表的所有记录。
所以,现在 JTable 将包含您放在选择列表中的所有列。
答案 1 :(得分:0)
以下是数据库选择的解决方案
SELECT * FROM sections s INNER JOIN teacher on s.adviserId = t.id