mysql - 选择具有相同 id 的特定行多个值

标签 mysql row

我在MySQL表package_in_plan中有以下数据

+------------+----------+------+
| package_id | plan_id  | opt  |
+------------+----------+------+
|  4         | 9        |    0 |
|  35        | 9        |    0 |
|  8         | 9        |    0 |
|  8         | 4        |    0 |
|  4         | 4        |    0 |
|  4         | 16       |    0 |
|  5         | 15       |    0 |
+------------+----------+------+

我希望能够选择 package_id 4 和 8 并且输出应该仅为 plan_id 4。我不希望它输出 plan_id 9,因为 plan_id 9 有 package_id 35,而 plan_id 4 没有,所以我希望它具体说明请求的这些 package_id 与 plan_id 相同。

这是我到目前为止所遇到的 SQL,并从那里开始。

Select * from package_in_plan where package_id in(4,8) group by plan_id having count(*) >1;

当然,这个不起作用。感谢您的帮助。

最佳答案

这会起作用:

Select *
from package_in_plan
where package_id in(4,8)
  AND plan_id NOT IN (SELECT plan_id FROM package_in_plan where package_id not in (4,8))

获取所有package_id为8或4的数据,并忽略那些package_id为8或4的plan_id的数据。

如果你可以像 @John Woo 所说的那样将另一个变量传递给查询 make

Select *
from package_in_plan
where package_id in(4,8)
group by plan_id
having COUNT(distinct package_id) = @num (how many packages you want)

关于mysql - 选择具有相同 id 的特定行多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33778084/

相关文章:

php - 从文本中获取特殊词

php - Codeigniter 连接表以显示不同的内容结果

function - MatLab - 将函数应用于矩阵中的每一行

r - 如何逐行求和?

scala - java.lang.String 不是字符串模式的有效外部类型

entity-framework - Entity Framework : How to return a row from a table with composite keys?

php - 我可以在PHP中混合使用MySQL API吗?

mysql - 如何从我的 Rails 应用程序查询数据库?

python - 使用 Flask/SQLAlchemy 最后对零进行排序

html - 划线/删除线穿过整个 HTML 表格行