首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从多个表中选择数据并比较不同的列

从多个表中选择数据并比较不同的列
EN

Stack Overflow用户
提问于 2019-11-25 16:18:46
回答 2查看 51关注 0票数 0

如何从两个不同的表中选择数据并进行比较并得到结果?

我有一台table1

代码语言:javascript
复制
id  name    surname    adress
1   Fred    Lapinski   brook st. 3-5
2   Albert  Enstein    wall st. 3-5
3   David   Leterman   blue st. 3-5
4   Andrew  Igudola    groov st. 3-5

和Table2

代码语言:javascript
复制
id  name             replacement
1   Patrick Kane     Igor Petrov
2   Fred Lapinski    Warrent Buffet
3   Sabrina Kubrick  Bill Dill
4   Andrew Igudola   Rebbeca Aberson 

我想从两个表中选择数据,如果来自table1的名称与来自table2的名称相同,则回显true并回显替换的名称。我正在制作一个系统,它显示了今天谁不在工作,谁来接替它。

EN

回答 2

Stack Overflow用户

发布于 2019-11-25 16:31:17

您可以尝试如下所示:

代码语言:javascript
复制
SELECT 
  CASE WHEN t2.id IS NOT NULL THEN 'T' ELSE 'F' END AS name_match, 
  COALESCE(
    t2.replacement, -- Return "replacement" if exists
    CONCAT(t1.name,' ', t1.surname) -- Otherwise return original name
  ) AS name_final
FROM table1 t1
LEFT JOIN table2 t2 ON (CONCAT(t1.name, ' ', t1.surname)) = t2.name

假设名称匹配表示table1中的<name> <surname> = table2中的<name>

票数 0
EN

Stack Overflow用户

发布于 2019-11-25 16:32:08

代码语言:javascript
复制
select 
table2.name, replacement 
from 
(select CONCAT(name, ' ', surname) as name from table1) a, table2
where 
a.name = table2.name;

table1在两个不同的列中包含姓名和姓氏,而table2仅在一列中包含全名。如果我们需要比较table1和table2的名字,那么我们需要将table1的名字和姓氏连接起来,然后将其与table2的名称连接起来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59027578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档