无法在MAMP上的2列MySQL表上应用WHERE / AND

时间:2013-03-14 10:27:13

标签: mysql mamp

我认为我有一个非常简单的查询要执行,但我似乎无法使它工作。

我的这个表有2列:

version_id       trim_id
    1               15
    1               25
    1               28
    1               30
    1               35
    2               12
    2               25
    2               33
    2               48
    3               11
    3               25
    3               30
    3               32

我正在尝试获取任何版本ID,其中包含了trim_id的子集。假设所有version_id都有trim_id的25和30.我的明显尝试是:

SELECT * FROM table WHERE trim_id=25 AND trim_id=30

我原本期望将version_id 1和3作为结果,但我什么都没得到。

我正在使用最新版本的MAMP,它有一些奇怪的行为,就像在这种情况下它只是告诉我它'加载'并且从不给我一个错误信息或其他东西。但通常情况下,没有数据可以返回。

这是InnoDB,如果有帮助的话。

感谢您的意见。

2 个答案:

答案 0 :(得分:1)

您的查询无效,因为您使用的是ANDtrim_id不能同时拥有两个不同的值,因此您需要应用Relational Division来获取结果。< / p>

您需要使用类似于以下内容的内容:

SELECT version_id
FROM yourtable 
WHERE trim_id in (25, 30)
group by version_id
having count(distinct trim_id) = 2

请参阅SQL Fiddle with Demo

这将返回同时包含version_id25的{​​{1}}值。然后,如果要在最终结果中包含其他列,可以将查询扩展为:

30

请参阅SQL Fiddle with Demo

答案 1 :(得分:0)

SELECT *
FROM table
WHERE trim_id IN(25,30)