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

SQL新手求助:如何通过sites_plugins关联表提取多表指定数据

如何通过sites_plugins关联表提取指定数据

作为SQL新手,你需要利用**表连接(JOIN)**关联三个表,从sites和plugins中提取目标字段,同时带上sites_plugins里的同步时间。

核心SQL语句

SELECT
  sites.description,
  plugins.fullName,
  plugins.currentVersion,
  COALESCE(sites_plugins.syncedAt, 'NULL') AS syncedAt
FROM sites_plugins
INNER JOIN sites ON sites_plugins.siteId = sites.id
INNER JOIN plugins ON sites_plugins.pluginId = plugins.id;

语句说明

  1. 表连接逻辑:

    • sites_plugins是关联sites和plugins的中间表,通过siteId匹配sites表的id,pluginId匹配plugins表的id,确保数据是一一对应的关联记录。
    • 使用INNER JOIN只会返回三个表中存在匹配关系的数据,也就是实际绑定了插件的站点记录。
  2. 字段处理:

    • 直接选择你需要的四个字段:sites.description(站点名称)、plugins.fullName(插件全名)、plugins.currentVersion(插件当前版本)、sites_plugins.syncedAt(同步时间)。
    • 用COALESCE函数把syncedAt中的NULL值转换成字符串"NULL",和你期望的输出格式一致。

实际查询结果

根据你提供的插入数据,执行上述SQL后会得到以下结果(按你示例的格式整理):

[
  ["Facebook", "Yoast SEO", "16.8", "NULL"],
  ["Facebook", "Akismet", "4.1.10", "2021-07-01 10:00:00"],
  ["Amazon", "Akismet", "4.1.10", "NULL"],
  ["Amazon", "Contact Form 7", "7.5.4.2", "NULL"],
  ["Amazon", "Wordfence Security", "7.5.4", "2021-06-15 12:00:00"]
]

关于你给出的示例说明

你提到的["Amazon", "Jetpack", "16.8", "NULL"]在现有数据中不存在——Amazon(siteId=2)并没有关联Jetpack插件(pluginId=2),如果需要这条数据,你需要先在sites_plugins表中插入对应的关联记录。

内容的提问来源于stack exchange,提问作者Kacper Łęczyński

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:40:59