You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL查询需求:筛选同时包含指定post_data值的Posts记录

同时包含指定多值的关联表查询

要筛选出对应Post_Data记录同时包含hello和test的Posts数据,你可以用以下几种MySQL查询方式实现:

方法1:分组统计 + HAVING子句

这种方式通过分组统计每个post_id匹配目标值的数量,筛选出数量等于目标值个数的条目:

SELECT p.id, p.name
FROM Posts p
JOIN Post_Data pd ON p.id = pd.post_id
WHERE pd.value IN ('hello', 'test')
GROUP BY p.id, p.name
HAVING COUNT(DISTINCT pd.value) = 2;

解释:先关联两张表,筛选出值为hello或test的记录,按Posts的id和name分组后,通过HAVING确保当前分组同时包含两个不同的目标值。

方法2:多次关联Post_Data表

通过两次JOIN操作分别匹配不同的目标值,确保两个条件同时满足:

SELECT p.id, p.name
FROM Posts p
JOIN Post_Data pd1 ON p.id = pd1.post_id AND pd1.value = 'hello'
JOIN Post_Data pd2 ON p.id = pd2.post_id AND pd2.value = 'test';

解释:每一次JOIN都对应一个目标值的匹配,只有同时满足两次JOIN条件的Posts才会被返回。

方法3:子查询取交集

通过两个子查询分别获取包含hello和test的post_id,再取交集关联Posts表:

SELECT p.id, p.name
FROM Posts p
WHERE p.id IN (
    SELECT post_id FROM Post_Data WHERE value = 'hello'
)
AND p.id IN (
    SELECT post_id FROM Post_Data WHERE value = 'test'
);

解释:先分别筛选出包含单个目标值的post_id集合,再取两个集合的交集,最终关联Posts表获取对应数据。

内容的提问来源于stack exchange,提问作者Rex Banner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 22:39:54