mysql - SQL查询根据另一列中的唯一元素查找列中的公共(public)ID

标签 mysql database

我一直在努力寻找一种相对简单的方法来执行此查询。我尝试过 join 和 wheres,甚至尝试在查询之外执行逻辑,但它变得非常复杂。

这是我的 SQL:

AttributeName_Id     |     ProductPrice_Id
    9                    |     1
    4                    |     1
    9                    |     2
    5                    |     2
    9                    |     3
    6                    |     3
    9                    |     4
    7                    |     4

我有输入 9 和 5。我将如何执行查询以便检索值 2?

最佳答案

这是一个“组内组”查询。我喜欢使用group byhaving来解决这些问题,因为它非常灵活:

select ProductPrice_Id
from table t
where AttributeName_Id in (9, 5)
group by ProductPrice_Id
having count(*) = 2;

这假设该表没有重复项;否则,您可能需要count(distinct)

关于mysql - SQL查询根据另一列中的唯一元素查找列中的公共(public)ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31819191/

相关文章:

php - 如何在php中使用ajax搜索关键字

mysql - 选择 MySQL 中所有子行的计数

android - 在 listView 中反转整个列表

database - Rethinkdb 按包含文本进行完整搜索

database - 如何在测试中模拟数据库

mysql - 按月对 MySQL 行进行分组并统计数据直到每个月

javascript - PHP、Javascript 获取mysql数据并在javascript中进行计算

php - Mod_rewrite 在 url 中返回空格

php - 用于从用户提交的数据确定值(value)的数据库设计

MySQL 根据另一列的值对一列进行分组