mysql - 从两个表之一中选择相同的数据

标签 mysql sql join mariadb

我必须做一些计时工作。有些员工属于第一团队,有些员工属于第二团队。我需要显示一个简单的表格,其中包含登录者和登录时间以及一些其他基本信息。

如果 team1 和 team2 两个表具有相同的列(first_namelast_namedate),但绝对保证只有其中一个表将按行返回数据,如何避免使用一堆别名 (first_name AS team1_first_name) 并且始终让 SQL 返回 first_name

示例查询:

SELECT *
FROM associates AS ac
LEFT JOIN team1 AS t1 ON (t1.id = ac.team1) 
LEFT JOIN team2 AS t2 ON (t2.id = ac.team2) 
ORDER BY ac.date DESC LIMIT 100;

最佳答案

由于 t1.first_namet2.first_name 之一为 null,而另一个则不是,
您可以使用coalesce()在这样的选择语句中:

select
  coalesce(t1.first_name, t2.first_name) first_name,
  coalesce(t1.last_name, t2.last_name) last_name,
  .............................................

关于mysql - 从两个表之一中选择相同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55778224/

相关文章:

mysql - 真/假与 MySQL 中的 0/1

两个不同(可能为空)列的 SQL 顺序

mysql - 列出左表中的所有值

sql - 从每组的第一行和最后一行获取数据

sql - 如何编写查询以根据表 A 的一列值将表 A 连接到表 B 或 C?

SQL JOIN 多部分标识符错误

mysql - mysql cpu占用率高

PHP 函数从数据库中提取字段值

php - 如何通过带有自增列的存储过程向表中插入数据

python - 修改表中的所有行