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