1

exp_lab_mapping 包含条目

lab_id->cse05
exp_id->CSE0501

我想通过编写查询从表 CSE0501 中选择数据

select * from (select exp_id from exp_lab_mapping where lab_id='cse05') as a;

但它没有给我 CSE0501 的数据,而是输出为

Output:-
----------
exp_id
CSE0501
4

1 回答 1

0

在这种情况下,您需要创建一个动态 sql,因为如果我正确理解了您的问题,您希望从中选择表名是表中的一行的记录exp_lab_mapping。(这也是一个糟糕的架构设计

SET @sql = (SELECT exp_id FROM exp_lab_mapping WHERE lab_id = 'cse05');
SET @sql = CONCAT('SELECT * FROM ', @sql);

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
于 2013-06-24T07:03:32.660 回答