【问题标题】:Select records only if another record contains a value from the first record in different field仅当另一条记录包含不同字段中第一条记录的值时才选择记录
【发布时间】:2011-03-06 00:46:55
【问题描述】:

我没有任何运气试图弄清楚这一点,或者如果可能的话会涉及哪种类型的陈述。

我正在处理公司标准的“员工”数据库。 db 有 USER_ID 和 SUPERVISOR_ID 的字段。没有字段可以指示员工是主管还是有下属。了解员工是否有下属的唯一方法是任何其他记录的 SUPERVISOR_ID 字段中是否包含员工的 USER_ID。

我需要基于 first_name / last_name 的查询,该查询仅返回有下属的员工。

SELECT * from employees e 
WHERE e.first_name LIKE '%<first_name_string>%' 
AND e.last_name LIKE '%<last_name_string>%' 

*(and where at least one record lists this USER_ID in it's SUPERVISOR_ID field)

感谢您的帮助!

【问题讨论】:

    标签: mysql


    【解决方案1】:
    SELECT * from employees e 
    WHERE e.first_name LIKE '%<first_name_string>%' 
    AND e.last_name LIKE '%<last_name_string>%' 
    AND (SELECT COUNT(*) FROM employees WHERE employees.SUPERVISOR_ID = e.USER_ID) > 0)
    

    【讨论】:

      【解决方案2】:
      select * from employees e
      where e.first_name LIKE '%firstnamestring%'
      AND e.last_name LIKE '%lastnamestring%'
      AND (e.USER_ID in
      (select SUPERVISOR_ID from employees))
      

      试试这个。

      【讨论】:

        猜你喜欢
        • 2015-11-12
        • 1970-01-01
        • 2020-09-15
        • 2021-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-06
        相关资源
        最近更新 更多