关于#mysql#的问题:mysql 把一个表的查询结果作为另外一个表的字段进行查询

mysql 把一个表的查询结果作为另外一个表的字段进行查询
(https://img-mid.csdnimg.cn/release/static/image/mid/ask/45991234776613.png "#left")

用子查询就可以实现吧

SELECT @cols := group_concat(distinct DecNo) from A;
set @Msql = concat('select ',@cols ,' from B') ;
prepare stmt from @Msql;
execute stmt;
 --  举个例子
with t1 as (
select '511111200101013333' sfz union
select '51111120010101333a' sfz union
select '511111800101222' sfz union
select '511a11800101222' sfz )
select case when length(sfz)!=15 then upper(sfz)
when length(sfz)=15 then concat(concat(substr(sfz,1,6),'19'),substr(sfz,6))
when sfz not regexp '[a-k]' then concat(sfz,floor(sfz/11))
when sfz regexp '[a-k]' then sfz
end sfz1
,length(sfz)
,sfz
,floor(sfz/11)
from t1