SELECT语句显示两个表

时间:2018-03-14 04:35:26

标签: mysql sql select join case

我有2张桌子。 T_before和T_after,这两个具有相同的表结构(数据类型,字段名称都相同)。 T_before是现在的数据。 T_用于检查差异的数据。

我想写一个SELECT语句来提取比较这两个表时哪个字段被更改。

例如。对于相同的ID,T_before.name!= T_after.name所以在'changedField'列中(从SELECT语句创建)与字符串'name'连接

现在我写了这个。

SELECT CASE(WHEN T_before.name != T_after.name THEN 'name, ' ELSE '' END CASE) AS f1, 
       CASE(WHEN T_before.address != T_after.address THEN 'address, ' ELSE '' END CASE) AS f2, 
       CONCAT(f1,f2) AS changedField 
FROM T_before INNER JOIN T_after ON (T_before.id = T_after.id);

现在,我有大约150个字段需要检查。使用这个SELECT语句创建的字段非常多(或者它不是很多?)。我有更好的方法吗?

编辑: 结果:

f1    |f2       |changedField
name, |address, |name, address, 

期望的结果:

changedField
name, address, 

如前所述,我有大约150个字段要检查,所以我编写的sql语句会返回很多字段

0 个答案:

没有答案