【问题标题】:Filtering keyword from second table从第二个表中过滤关键字
【发布时间】:2013-07-13 03:22:53
【问题描述】:

我有两张桌子

员工

id    employee_name  JobTitle     
---------------------------
1     John            CEO 
2     Ely             MANAGER    
3     Marcus          MANAGER    
4     Steve           CEO 
5     Fritz           ASSISTANT   
6     Orly            ANALYST
7     Carlo           ANALYST      
7     Lee             MANAGER

职位过滤器

filter_id     JobTitle_keyword     
---------------------------
1               CEO 
2               MANAGER  

是否可以使用 JobTitle_keyword 作为过滤关键字?
所以如果我运行查询...结果会是这样的。

id    employee_name  JobTitle     
---------------------------
1     John            CEO 
2     Ely             MANAGER    
3     Marcus          MANAGER    
4     Steve           CEO      
7     Lee             MANAGER

【问题讨论】:

  • SELECT a.* FROM Employees a INNER JOIN JobTitleFilter b ON a.JobTitle = b.JobTitle_Keyword
  • 听起来不错.. 我认为只有唯一的 id 可以用于内部连接

标签: mysql sql filtering


【解决方案1】:

是的,您可以在 MySQL 中使用 join 执行此操作。

SELECT t1.* 
FROM   Employees t1 
JOIN   JobTitleFilter t2 
ON     t1.jobtitle = t2.jobtitle_keyword

检查它是否在this SQL fiddle 中工作。

【讨论】:

  • +1 对于 SQL Fiddle。顺便说一句,您的查询似乎正确,不知道为什么它被否决:)
【解决方案2】:

你需要加入表格:-

SELECT emp.* 
FROM   Employees emp 
INNER  JOIN JobTitleFilter Job 
ON     emp.JobTitle = Job.JobTitle_Keyword

Select emp.id,emp.employee_name,emp.JobTitle 
FROM Employees as emp,JobTitle as Job 
Where emp.JobTitle= Job.JobTitle_Keyword

SQL FIDDLE

【讨论】:

    【解决方案3】:

    试试这个..

    SELECT id,employee_name,JobTitle 
    FROM Employees e 
    INNER JOIN JobTitleFilter j ON e.JobTitle = j.JobTitle_Keyword
    

    或者你也可以试试这个..

    SELECT id,employee_name,JobTitle 
    FROM Employees e 
    where e.JobTitle in (Select JobTitle_Keyword from JobTitleFilter)
    

    SQL FIDDLE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      • 2017-05-17
      相关资源
      最近更新 更多