SQL查询构造,用于从另一个表中的多个值中查找行

时间:2015-02-24 13:56:21

标签: php mysql sql

我有两个表:jobsapplications

jobs包含id(密钥)和user_id(创建该行的用户的ID)列。

applications包含job_id列(应用程序与之关联的作业的ID)。

我尝试构建的查询将执行以下操作:

  1. 搜索jobs表格中具有特定user_id
  2. 的所有行
  3. 搜索applications表中job_id与上次搜索中返回的id相关的所有行
  4. e.g。

    jobs表格

    id    user_id    ...>
    1     1          ...
    2     3          ...
    3     1          ...
    

    applications表格

    id    job_id     ...>
    1     3          ...
    2     1          ...
    3     2          ...
    

    如果我运行user_id = 1的查询,它应该从applications表返回第1行和第2行,因为它们与user_id = 1的作业相关。

    如何实现这一目标?

2 个答案:

答案 0 :(得分:2)

  select app.* from applications app, jobs j
  where j.id = app.job_id
  and j.user_id = '1'

使用加入。

答案 1 :(得分:0)

你可以加入这两个表来制作一个更大的表"包含所有数据。您将在公共列上加入它们,在您的情况下,它的Id = job_id。

查询将如下所示:

select a.* 
from applications a 
join jobs j on a.job_id = j.id  
where j.user_id = '1'