MySQL根据另一个表选择表中的值

时间:2014-03-16 01:16:31

标签: java mysql sql

我有一张表'Staff',其中包含所有员工的详细信息。包括'StaffID'。

然后我有一个'StaffRole'表,它有'StaffID'和'RoleID'

我想做这样的事情:Select * From Staff Where RoleID=1;

但是我不确定我是否可以这样做,因为RoleID不在Staff表中。

有人知道正确的语法吗?任何反馈都表示赞赏。

2 个答案:

答案 0 :(得分:2)

试试这个:

SELECT * FROM staff s
WHERE EXISTS(
   SELECT 'ROLE'
   FROM staffrole r
   WHERE r.staffid = s.staffid
   AND r.roleid = 1
)

另类:

SELECT * FROM staff s
JOIN staffrole r
ON r.staffid = s.staffid
WHERE r.roleid = 1

答案 1 :(得分:2)

使用联接:

select s.*
from staffrole r
join staff s
  on s.staffid = r.staffid
where roleid = 1

staffrole(roleid)上的索引应该会让它表现得更好。