Mysql选择所有行时通过FK获取实际值

时间:2016-07-05 05:06:23

标签: mysql sql foreign-keys subquery foreign-key-relationship

我需要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

2 个答案:

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