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/