【问题标题】:Display SQL Table records that have matching data from different table显示具有来自不同表的匹配数据的 SQL 表记录
【发布时间】:2020-07-10 04:15:16
【问题描述】:

我对 SQL 很陌生,我正在尝试根据另一个表中的匹配列来过滤一个表中的一组记录。 这是我想做的一个例子: 我有两张桌子,我称它们为 TableA 和 TableB。 我已经在两个表上应用了搜索以过滤它们单独的结果,但我想根据来自 TableB 的匹配记录过滤 TableA。 表A:

表B:

TableA 格式的所需结果:

TableB 和 TableA 具有匹配的 ID 列,如果记录也出现在 TableB 中,我只想显示 TableA 中的记录,但我需要它们以 TableA 格式出现。

【问题讨论】:

  • 一个简单的JOIN。或 EXISTS/IN。

标签: sql database


【解决方案1】:

你需要做类似的事情

Select a.id, a.first_name, a.last_name, a.birthday, a.ssn from TableA a, Table b where a.id=b.id

【讨论】:

  • 今日提示:始终使用现代、明确的JOIN 语法。更容易编写(没有错误),更容易阅读和维护,如果需要更容易转换为外连接!
【解决方案2】:

你可以使用exists:

select a.*
from a
where exists (select 1 from b where a.id = b.id);

【讨论】:

    【解决方案3】:

    一个简单的连接就可以做到这一点。

    select TableA.* from TableA inner join TableB on TableB.ID = TableA.IB
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 1970-01-01
      • 2016-11-26
      相关资源
      最近更新 更多