动态表名的 SQL 语句
【问题】
有 3 个表,A,B,C。其中 A 表放其它表的表名,如何查询例如:
A 表:
ID TableName
01 B
02 C
03 B
B 表:
ID Num
01 13
02 14
03 15
C 表:
ID Num
01 91
02 92
03 93
我要得到如下数据:通过表 A 用 ID 关联
ID Num
01 13
02 92
03 15
将如何查询
【回答】
提问者需要根据 A 表中记录的 TABLENAME 查询对应 ID 在“TABLENAME 表”中的值。使用 SPL 动态拼接写起来很简单:
| A | |
|---|---|
| 1 | =connect("test") |
| 2 | =A1.query("select * from A") |
| 3 | =A2.new(ID, A1.query("select VAL from"+TABLENAME+"where ID ="+ID).VAL:val) |
A1: 连接数据库。
A2:查询表 A 表成序表。
A3:根据 A2 每条记录的 TABLENAME 列动态拼 sql 并查询。
A1

A2

本文探讨了如何在SQL查询中处理动态表名的问题,通过一个具体的例子展示了如何从A表中获取表名,然后利用这些表名查询B表和C表的相关数据,并将结果整合。主要涉及数据库连接、动态SQL拼接及数据联合查询的概念。
686

被折叠的 条评论
为什么被折叠?



