sql - 比较两个表并在 SQL 列中查找相似内容

标签 sql postgresql compare sql-like

假设我有两个包含相似对象的表,例如有关某些音乐专辑的信息。 表 A 有一个很长的专辑列表,显示艺术家、专辑名称、发行年份和流派,但表 B 包含一个较短的专辑列表,可能只有一位艺术家(显示专辑名称、发行年份、流派)。

现在我想查找某个艺术家(显示在表 B 中)的哪些专辑也显示在表 A 中。

通常我会这样说:

选择标题 来自表A a,表B b 其中 a.title = b.title

但问题是表 A 和表 B 可能以不同的方式显示标题,例如表 A 中专辑的标题可能是:“The Title”,但同一张专辑可能被称为:“The Title (feat.Artist2)”在表 B 中。但是,差异可能并不总是相同的。

是否有任何方法可以比较这两个表和这些表中的标题列并找到两个表中的专辑,同时考虑到标题可能不同,即使它们代表相同的专辑?

like 函数存在,但是否可以修改它以适应这些情况?或者可能有更好的解决方案来解决这个问题?

最佳答案

SELECT a.title
FROM tableA a, tableB b
WHERE a.title LIKE '%' + b.title + '%'

关于sql - 比较两个表并在 SQL 列中查找相似内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27427648/

相关文章:

mysql - 如何连接两个表但只返回与特定列不匹配的行,其中也包含 NULL?

mysql - 从具有外键约束的表中删除行

mysql - 我如何在子句Mysql中使用and with

sql - Postgresql 独特语句

postgresql - Postgres - 是否可以按我的字段之一的子字符串进行分组?

sql - 数组的 JSONB 子集

sql - 在 SQL Server 2008 中只存储月份和年份?

Mysql - 我可以获取子选择结果并在 WHERE 子句中使用它吗?

c++ - 为什么 '==' 在 std::string 上很慢?

java - 比较 2 个字符串,看看它们是否包含共同项