动态表名的 SQL 语句
动态表名的 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

