SQL查询搜索具有相同id字段但不同参数字段的多个行

时间:2012-06-15 04:50:08

标签: php sql database filter

我觉得这应该很简单,但我被困住了。这就是我在数据库中的内容

id   field_value
----------------
41   Blue
42   Blue
43   Blue
43   Sweet
46   Blue   
47   Sweet

我需要选择只有$colour = blue AND $taste = sweet的字段。 基本上我需要得到43的id,因为它有蓝色和甜味。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

你通常会这样测试:

select id
  from table1
 where field_value in ('Blue', 'Sweet')
 group by id
having count (distinct field_value) = 2

= 2in ()列表中的项目数。

Check out the test @ Sql Fiddle

答案 1 :(得分:0)

如果我理解正确;像这样:

$colour = (!isset($_GET['colour']) || empty($_GET['colour'])) ? '' : $_GET['colour'];
$taste = (!isset($_GET['taste']) || empty($_GET['taste'])) ? '' : $_GET['taste'];

$query = "SELECT * FROM table WHERE (parameter = '$colour') AND (parameter = '$taste')";

答案 2 :(得分:0)

在查询中使用查询。喜欢的东西;

SELECT id
FROM table
WHERE field_value = 'Blue'
AND
id IN (SELECT id
    FROM table
    WHERE field_value = 'Sweet')
GROUP BY id