不同列名多表单查询合并URL 实现动态Sitemap方法咨询
多表统一查询URL解决方案
核心解决方法是使用SQL的UNION ALL语法,无需关联表,直接将多个表的查询结果纵向合并即可,具体操作如下:
基础查询语句(仅获取所有URL)
SELECT addpage AS url FROM 表A UNION ALL SELECT pagename AS url FROM 表B UNION ALL SELECT pagename AS url FROM 表C
语法说明:
- 每个
SELECT语句查询单个表的URL字段,通过AS统一别名,保证合并后所有URL都在同一列下 UNION ALL会保留所有重复的URL,如果你需要自动去除重复的URL,可以将UNION ALL替换为UNION,注意UNION的查询性能低于UNION ALL,无去重需求时优先使用UNION ALL
进阶查询(附加URL所属表信息)
如果后续生成Sitemap时需要区分URL来源,可在查询时新增来源标识字段:
SELECT addpage AS url, '表A' AS source FROM 表A UNION ALL SELECT pagename AS url, '表B' AS source FROM 表B UNION ALL SELECT pagename AS url, '表C' AS source FROM 表C
查询结果会额外返回source列,标注每一条URL所属的数据表。
内容的提问来源于stack exchange,提问作者Rishabh Raj
相关产品推荐
相关产品推荐

