我有两个表 projects 和 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
现在我想要连接两个表的输出,以找出由 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'
上面的查询似乎适用于单个条件,但当有更多条件时,它返回空结果。
提前致谢
最佳答案
您需要 JOIN
两次到 projects_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'
上述查询返回所有链接到“verified_by Erik” 和“approved_by Dave” 记录的项目。
关于php - 搜索多行mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39406063/