我有两个表,其中一些表的计数保存在haddop配置单元上。 表1列:日期,表,计数(表名小写)
01/07/2018 base1.tablename1 300
01/07/2018 base1.tablename2 100 ...
我的第二张表具有相同的形状:日期,表,计数(其中表名为大写字母
02/07/2018 TABLENAME1 200
02/07/2018 TABLENAME2 10
我想要一个新桌子
Tablename_T1 tablename_T2 CountT1 CountT2 DateT1 DateT2
TABLENAME1 tablename1 300 200 01/07/18 02/07/2018
TABLENAME2 tablename2 100 0 01/07/18 02/07/2018
我尝试了此查询,但它不起作用
select *
from count_tables a, count_tables2 b
where a.tablenamelike concat('%',b.tablename,'%')
谢谢
答案 0 :(得分:1)
使用instr()
函数
select *
from count_tables a
inner join count_tables2 b on a.datet1=b.datet2
where instr(a.tablename,b.tablename) > 0
如果不希望将表on a.datet1=b.datet2
中的每个日期与表a
中的每个日期重复,则将日期添加到连接条件b
中。
还可以使用locate(string substr, string str[, int pos])
函数:
where locate(b.tablename, a.tablename) > 0
答案 1 :(得分:0)
如果a.nom_table具有可预测的顺序,那么我们可以这样写
select *
from count_tables a, count_tables2 b
where substr(a.nom_table,7,length(a.nom_table))=lower(b.nom_table)