mysql - 从表中选择 col_a in() 仅在 col_b 值匹配的地方

标签 mysql

我正在尝试构造一个查询,该查询基于列 a(parameter_id)获取某些行,但获取的位置结果具有匹配的列 b (dimension_id)

这是代表我正在使用的表格。

parameter_dimension
+-------+---------------+----------------+
| id    | parameter_id  | dimension_id   |
+-------+---------------+----------------+
| 500   | 1             | 100            |
| 501   | 1             | 101            |
| 502   | 1             | 102            |
| 503   | 2             | 102            |
+-------+---------------+----------------+

如果我写

SELECT *
FROM parameter_dimension
WHERE parameter_id IN (1)
GROUP BY dimension_id

如愿以偿

+-------+---------------+----------------+
| id    | parameter_id  | dimension_id   |
+-------+---------------+----------------+
| 500   | 1             | 100            |
| 501   | 1             | 101            |
| 502   | 1             | 102            |
+-------+---------------+----------------+

但是如果我写

SELECT *
FROM parameter_dimension
WHERE parameter_id IN (1,2)
GROUP BY dimension_id

然后我只希望获得具有共同dimension_id 的行。 像这样

+-------+---------------+----------------+
| id    | parameter_id  | dimension_id   |
+-------+---------------+----------------+
| 502   | 1             | 102            |
+-------+---------------+----------------+

是否有可能实现这一点,并且只需要一个查询?

我更喜欢使用 IN(),因为 parameter_id 的数量可能会有所不同。

我进行了广泛的搜索,要么留下了我无法破译的解释,要么常常怀疑所问的问题与我的问题完全相关。

最佳答案

您可以使用具有不同值的 group_concat。您应该按 parameter_id 订购

 SELECT *
    FROM parameter_dimension
    WHERE parameter_id IN (1,2)
    GROUP BY dimension_id
    having group_concat(distinct parameter_id ORDER BY parameter_id ASC)='1,2'
    order by parameter_id

关于mysql - 从表中选择 col_a in() 仅在 col_b 值匹配的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44115262/

相关文章:

php - 我如何回应变量?

mysql - 如何计算 MYSQL 查询中删除的行数?

mysql - laravel中如何设计多重权限?

mysql - Access(SQL)将一个数据中的两个字段拆分为两个数据

php - mysql 根据其他列的值进行排序

mysql - 将 MySQL 导出到 .txt 选项卡,所有列标题都在 MySQL 中?

php - 如何通过在 cakephp 2.x 中使用可包含行为来获取国家、城市、州的用户

php - 无法从多个页面中找到变量

mysql - 如何删除选定的行mysql express.js

mysql - 将一个数据库字段的值合并到另一个数据库字段中