带有主和子访问 ID 的 mysql 查询

标签 mysql

我有一个像这样的 MySQL 表

ownerlisting_access_id   property_id    mainaccess_id   subaccess_id access_value
 62                      2              35      41           Yes
 64                      2              35      36           Yes
123                      4              35      41       Yes
125                      4              35      36       Yes
306                      7              35      41       Yes
307                      7              35      42       Yes
308                      7              35      36       Yes

我需要获取为 subaccess_id 提供 41 & 42 & 36 的 property_id。 我需要将 property_id 获取为 7。

最佳答案

这应该有效:

SELECT property_id FROM t
WHERE subaccess_id IN (41, 42, 36)
GROUP BY property_id
HAVING COUNT(DISTINCT subaccess_id) = 3

fiddle here .

请记住,您应该将 IN 子句中的元素数量与 HAVING 子句中的数量相匹配。另请注意,如果给定 property_id 不能多次使用相同的 subaccess_id,则可以删除 DISTINCT 关键字。

关于带有主和子访问 ID 的 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20246052/

相关文章:

mysql - 从 MySql 中仅选择年份

php - 基于时间戳组织数据 mysql + PHP

php - MySQL 查询执行错误

php - MySQL查询题..我放弃!

php - 这个基于 PHP 的 SQL 语句的正确语法是什么?

mysql - NOT IN WHERE 子句错误

mysql - 在 bash 中打印结构化 SQL SELECT 的简单方法

php - 如何在 Mysqli 准备语句中使用 PHP 常量

mysql - 当两个表具有不同的字段时如何将数据移植到表中

PHP MySQL 表鼠标悬停事件显示 MySQL 中存储的信息(使用 Dreamweaver)