首页 > 解决方案 > 如何使用mysql比较来自两个不同表的两个字段?

问题描述

像这样的东西

select 
(
case when     
( (select t1.name from table_1 as t1)=(select t2.name from table_2 as t2) )    
then 'same'    
else 'different'     
end
);

我想将 table_1 中的“名称”与 table_2 中的“名称”进行比较,如果它们相等,则显示在“同名”字段中,如果不相等,则显示“不一样”。

有什么case(或其他)我可以做到的吗?

我将不得不对多个字段(姓名、姓氏、年龄等)执行此操作,但我无法弄清楚这个简单的查询。


这是我想要的另一个比较,但现在有两列:

    Table A:
 ID - NAME - Age
 1    rick   12
 2    denis  21
 3    jane   34
 4    john   38
 5    jerry  76
 6    max    54

    Table B:
 ID - NAME - Age
 1    rick   10
 2    jay    21
 3    morris 34
 4    john   38
 5    jerry  79
 6    morty  54

将每个字段与我想要的条件进行比较的结果:

ID -   Name     -  Age
1     Same        Different
2     Different   Same
3     Different   Same
4     Same        Same
5     Same        Different
6     Different   Same

标签: mysql

解决方案


试试这个会有所帮助

 SELECT CASE 
             WHEN t2.name IS NULL THEN 'not the same' 
             ELSE 'same name' 
         END 
    FROM table_1 t1 
    LEFT JOIN table_2 t2 ON t1.name = t2.name 

推荐阅读