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

Mysql选择所有行时通过FK获取实际值,mysql,sql,foreign-keys,subquery,foreign-key-relationship,Mysql,Sql,Foreign Keys,Subquery,Foreign Key Relationship,我需要从节中选择*并获取每行的列值以填充JTable。我的问题是,我的advisiverid列在部分表中是一个INT 因为我要得到每一行上每一列的结果集,所以我不能发出WHERE子句。我想到了子查询,但是由于Id在每一行上都是不同的,所以在WHERE子句上不能提供预先确定的Id 因此,如果我运行存储过程,我只会得到advisionrid的int值,而不是老师的名字 我有教师和部分表格 老师 id PK INT lastName firstName middleName isAdviser

我需要从节中选择*并获取每行的列值以填充
JTable
。我的问题是,我的
advisiverid
列在部分表中是一个
INT

因为我要得到每一行上每一列的结果集,所以我不能发出
WHERE
子句。我想到了子查询,但是由于
Id
在每一行上都是不同的,所以在
WHERE
子句上不能提供预先确定的
Id

因此,如果我运行存储过程,我只会得到
advisionrid
int
值,而不是老师的名字

我有教师部分表格

老师

id PK INT
lastName 
firstName 
middleName 
isAdviser 
status 
章节

id PK
name 
adviserId FK-- REFERENCING `id` column ON teacher table
最好的方法是什么?我希望你能帮忙

谢谢

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 我根据大家的建议创建了最终的存储过程。(再次感谢大家。)


是的,我也这么认为,一个简单的
内部连接将完成您的工作。试试下面的例子

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
您可以在此处应用
左联接
,以确保部分表的所有记录都与教师数据相关或为空数据。
因此,现在JTable将包含您在选择列表中放置的所有列

是的,我也这么认为,一个简单的
内部连接将完成您的工作。试试下面的例子

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
您可以在此处应用
左联接
,以确保部分表的所有记录都与教师数据相关或为空数据。
因此,现在JTable将包含您在选择列表中放置的所有列

下面是db数据选择的解决方案

SELECT * FROM sections s INNER JOIN teacher on s.adviserId = t.id

下面是db数据选择的解决方案

SELECT * FROM sections s INNER JOIN teacher on s.adviserId = t.id

在s.adviserId=t.isAdviser上选择*从s.adviserId=t.isAdviser的内部连接教师部分-检查此选项将帮助您完成连接并完成连接。很难猜测您的问题是什么。1.为什么您认为其中一列是INT是个问题?2.为什么每行每列的结果都会阻止您使用where???@Rakesh
advicrid
引用了
id
列,因此
s.advicrid=t.isAdviser
不正确。@Jacobian是,这是我的错误使用它-从s.adviserId=t.idSELECT上的节的内部连接教师中选择*从s.adviserId=t.isAdviser上的节的内部连接教师中选择*检查此选项将帮助您只进行连接并完成连接。很难猜测您的问题是什么。1.为什么您认为其中一列是INT是个问题?2.为什么每行每列的结果都会阻止您使用where???@Rakesh
adviserId
引用了
id
列,因此
s.adviserId=t.isAdviser
是不正确的。@Jacobian是的,使用它是我的错误-从s.adviserId=t.id上的s.Internal JOIN教师节中选择*