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

最佳答案

在这种情况下,您需要创建一个动态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;



SQLFiddle Demo

关于mysql - 如何从表中选择数据,该数据是另一个表中的行数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17269671/

10-11 02:36