MySQL通过引用一个数据字段来选择多行

标签 mysql sql select group-by having

===========================
= id = model_id = property =
===========================
= 14 = 1        = 1       =
===========================
= 15 = 1        = 3       =
===========================
= 16 = 2        = 1       =

我有一个像上面这样的表,我只想选择属性等于 1 AND 3 的 model_ids

如果您能告诉我如何做,我会很高兴

最佳答案

听起来你想要这个:

select model_id
from yourtable
where property in (1, 3)
group by model_id
having count(*) > 1;

参见SQL Fiddle with Demo

或者您可以使用以下内容:

select model_id
from yourtable t1
where property = 1
  and exists (select model_id
              from yourtable t2
              where t1.model_id = t2.model_id
                and property = 3)

参见SQL Fiddle with Demo

关于MySQL通过引用一个数据字段来选择多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13249903/

相关文章:

mysql - 扫描错误 : unsupported Scan, 存储 driver.Value type <nil> into type *string

Mysql 存储过程 if (select....) > 变量 then

mysql - 如何仅计算 char 数据类型列中的缺失值/空白值

c# - SQL 查询没有获取所有数据 C#/ASP.net

mysql - 时间重叠总和

MySQL - 选择月份差异

mysql - 基本存储过程返回错误

php - 计算当前行和上一行之间的时间差

mysql - 如何将这两个sql合并为一个sql?

mysql - 检索具有最大日期的每个组的行