0

我在搜索子表时遇到问题。这是一个简单的例子:

表:project_details

数据

我想按名称、描述搜索项目,然后将其与 project_list_id 相关联,例如 zip 和 state。

我知道问题在于我如何搜索明细表。所以我用一张桌子把它分解成更简单的东西:

SELECT `ProjectDetail`.`project_list_id` FROM `database`.`project_details` AS `ProjectDetail` WHERE (
    (
        (
            (`ProjectDetail`.`answer` = '96720') 
            AND 
            (`ProjectDetail`.`field_name` = 'zip')
        )
    ) 
    AND (
        (
            (`ProjectDetail`.`answer` = 'HI') 
            AND 
            (`ProjectDetail`.`field_name` = 'state')
        )
    ) 
)

我想选择同时满足这两个字段要求的 project_list_id,但由于它们是唯一的行,因此不会返回任何内容。

4

1 回答 1

1

据我了解,您不会返回每个 id 分别满足这两个条件的所有 projects_ids。所以这应该工作:

SELECT a.project_list_id 
FROM database.project_details a
INNER JOIN database.project_details b
ON a.project_list_id = b.project_list_id
WHERE a.answer = '96720' AND a.field_name = 'zip'
AND b.answer = 'HI' AND b.field_name = 'state'
于 2013-09-14T20:45:09.843 回答