简体   繁体   English

搜索多行mysql

[英]Searching over multiple rows mysql

I have two tables projects and projects_meta 我有两个表项目和projects_meta

   Projects
    --------------------
    id  name
    --------------------
    1   A    
    2   B
    3   C

projects_meta
------------------------------------------------------------
id    project_id   additional_field  additional_value
------------------------------------------------------------
1     1            verified_by       Erik
2     1            approved_by       Dave
3     2            verified_by       Riyaj
4     2            approved_by       Mike
5     3            verified_by       Erik
6     3            approved_by       Dave

Now i want the output where joining both tables to find out what are the projects verified by Erik and approved by Dave 现在我想要在输出中加入两个表,以找出由Erik验证并由Dave批准的项目

SELECT * 
FROM projects a 
INNER JOIN projects_meta b 
ON a.id = b.project_id 
WHERE b.additional_field= 'verified_by' 
AND b.additional_value = 'Erik' 
AND b.additional_field= 'approved_by' 
AND b.additional_value = 'Dave'

The Above query seems to work with a single condition but when there is more it returns empty result. 上面的查询似乎只适用于一个条件,但是当条件更多时,它返回空结果。

Thanks in advance 提前致谢

You need to JOIN twice to projects_meta table: 您需要两次JOINprojects_meta表:

SELECT * 
FROM projects a 
INNER JOIN projects_meta b ON a.id = b.project_id 
INNER JOIN projects_meta c ON a.id = c.project_id 
WHERE b.additional_field= 'verified_by' AND b.additional_value = 'Erik' AND 
      c.additional_field= 'approved_by' AND c.additional_value = 'Dave'

The above query returns all projects being linked both to 'verified_by Erik' AND 'approved_by Dave' records. 上面的查询返回所有链接到“ verified_by Erik”“ approved_by Dave”记录的项目。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM