【问题标题】:How to use other table field in SQL Where clause如何在 SQL Where 子句中使用其他表字段
【发布时间】:2013-05-18 12:10:12
【问题描述】:

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

对不起,如果我感到困惑......

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

我有 empid,availability 的表员工 其他表适用于 shot、empid、availability

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

我已经发布了我的SQL here @ fiddle

我需要我的结果如下所示

拍摄 empid 可用性

002 P4645 在线

003 P6682 在线

005 P4645 在线

006 P6682 在线

009 P4645 在线

010 P6682 在线

由于所有记录在works表中都在线。但是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'

因为它是动态生成的

【问题讨论】:

    标签: mysql sql mysql-workbench mysql-python


    【解决方案1】:

    试试

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

    SQLFiddle

    【讨论】:

      猜你喜欢
      • 2021-06-16
      • 2013-05-16
      • 1970-01-01
      • 2018-05-31
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多