我正在尝试一次访问来自不同表的数据,但我希望能够根据给定另一个表中的列的值来确定从哪些表中提取数据。
这是一个例子:
表A:(id,table1_id,table1_type,table2_id,table2_type)
- (1, 1, 'B_Type', 2, 'E_Type')
- (2, 2, 'B_Type', 3, 'D_Type')
- (3, 1, 'C_Type', 2, 'B_Type')
表 B:(id,some_values):
- (1,“某事”)
- (2,“别的东西”)
表 C、D 和 E 看起来与 B 有点相似。
所以,我想做以下事情(用伪 javascript 完成):
result = db.Query("SELECT * from A WHERE [condition] LIMIT 1")
table1 = getTable(result.table1_type) // E.g. 'B' if 'B_Type'
table2 = getTable(result.table2_type)
new_results = db.Query("SELECT * from " + table1 + ", " + table2 + " WHERE [condition]")
这种方法有效,但我希望可能有一种方法可以根据 A 的 table_type 列有条件地选择表。
任何帮助,将不胜感激。