mysql - 使用 MYSQL 根据另一个表中的现有条目添加条目

标签 mysql sql

我有两个表(X 和 Y),其中包含“电子邮件”列(列名称:表 x 中的 EmailX 和表 y 中的 EMailY)。我想在表 X 中添加一列,当表 X 中的电子邮件地址是表 Y 中的电子邮件地址之一时,该列填充"is";当表 X 中的电子邮件地址不是电子邮件地址之一时,该列填充“否”在表Y中。

我该怎么做?

感谢您的支持!

最佳答案

不要在数据库中冗余存储数据。由于您始终可以检查表 y 中是否存在条目,因此不应向表 x 添加标志来指示这一点。

以下是如何通过 EXISTS 获取信息:

select 
  x.*,
  case when exists (select * from y where y.emaily = x.emailx) then 'yes' else 'no' end
    as exists_in_y
from x;

IN 相同我更喜欢简单一点:

select 
  x.*,
  case when emailx in (select emaily from y) then 'yes' else 'no' end as exists_in_y
from x;

与外连接相同

select 
  x.*,
  case when emaily is not null then 'yes' else 'no' end as exists_in_y
from x
left join (select distinct emaily from y) y on y.emaily = x.emailx;

如果 emaily 在 y 中已经是唯一的,您可以直接从表中选择(改为 left join y on y.emaily = x.emailx

这是个人选择的问题。我选择IN通常,使用 EXISTS条件为<> ,当我想要另一个表中的多个字段时,请使用联接。

关于mysql - 使用 MYSQL 根据另一个表中的现有条目添加条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41266733/

相关文章:

mysql - 现有数据 SQL 的订单下拉

mysql - 导入转储文件而不会中断服务

SQL查询中的PHP整数值

php - 通过 php 数组将多行插入 mysql

Mysql统计有多少答案是正确的

mysql 特定子字符串

php - 如何将数据库/PHP 中的 PDF 文件嵌入 HTML

mysql - Excel、SQL - 将选择的标题行更改为列并为每列插入值

sql - 如何获取数据库表中值的前x%

mysql - 修复记录不正确的表