如何在SQL Where子句中使用其他表字段

时间:2013-05-23 08:09:25

标签: mysql sql mysql-workbench mysql-python

我有一个场景,我需要从一个表中选择行,前提是条件满足其他表。

很抱歉,如果我感到困惑......

我使用MySQL作为数据库,使用python 2.6连接到数据库。

我的表员工有empid,可用性 其他表与shot,empid,availability

一起使用

我需要检索来自works的所有镜头,其中works的empid可用性与员工表中的相同

我发布了SQL here @ fiddle

我需要我的结果如下

  

shot empid availability

     

002 P4645 Online

     

003 P6682 Online

     

005 P4645 Online

     

006 P6682 Online

     

009 P4645在线

     

010 P6682 Online

由于所有记录都在工作表中联机。但是empid 1863在employee表中是脱机的,因此应该检索除此empid以外的记录。我不能将此硬编码为此SQL

select x.shot,x.empid,x.availability from work x
inner join (
  select empid,availability from employee where empid = 'P4645') y on y.availability = x.availability
where x.empid <> '1863'

因为它会动态生成

1 个答案:

答案 0 :(得分:3)

尝试

select * 
  from work x join employee e
    on e.availability = x.availability
   and e.empid = x.empid

<强> SQLFiddle