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

如何将condos_pranks表关联到主查询以获取完整prank数据?

解决方法

你原来的查询以dares表为起点,这就导致只能获取到dares里关联的prank,拿不到condos_pranks中独有的那些数据。正确的做法应该以condos_pranks作为主表,这样才能覆盖所有需要的prank,再通过左连接关联dares来匹配已有的dare值,没有匹配到的就用No填充。

最终的SQL查询语句如下:

SELECT DISTINCT p.prank, COALESCE(d.dare, 'No') AS dare
FROM condos_pranks pd
INNER JOIN pranks p ON p.id = pd.prank_id
LEFT JOIN dares d ON d.condo_id = pd.condo_id AND d.prank_id = pd.prank_id
WHERE pd.condo_id = 1;

语句说明:

  • 以condos_pranks为主表,筛选condo_id=1的所有记录,确保能拿到你需要的prank_id(1,4,5,6)。
  • 内连接pranks表,获取对应的prank名称(L,O,P,Q等)。
  • 左连接dares表,关联条件同时匹配condo_id和prank_id,这样能把dares中存在的dare值关联过来。
  • 用COALESCE(d.dare, 'No')处理默认值:如果dares中没有匹配的记录,dare字段就显示No。
  • 加上DISTINCT确保prank数据唯一,避免同一个prank因为关联问题重复出现。

执行这个查询后,就能得到你期望的结果:

prankdare
LYes
MNo
NMaybe
ONo
PNo
QNo

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:15:37