有如下两张表,一张表是信息表TABLE1,有id和type两个字段:
另一张表是名称表TABLE2,有type和type_name两个字段:
注:两表里的TYPE可能会有一百多种,是否会影响?
现在想要关联TABLE2的type_name,得到如下的表,用SQL要如何实现?请教一下,非常感谢!
select * from tb1 as a cross join (select * from tb2) as b where instr(concat(',',a.tp,','),concat(',',b.tp,','))>0;
可以使用临时表或者自定义函数。
可以使用视图来保存关联后的结果,方便后续查询:
CREATE VIEW `table1_2_union_view` AS SELECT
t1.*,
group_concat( t2.type_name ) AS type_name
FROM
table1 AS t1
CROSS JOIN ( SELECT * FROM table2 ) AS t2
WHERE
instr(
concat( ',', t1.type, ',' ),
concat( ',', t2.type, ',' ))> 0
GROUP BY
t1.id,
t1.type;