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

imagepng

A2

imagepng