【发布时间】:2021-11-25 11:55:07
【问题描述】:
我有两个表,其中包含大量数据。我从两个表中提取了一行来提供这个示例。
我需要将表 1 中的任何用户记录与专业匹配的表 2 进行匹配。
我不能使用 IN 子句,因为我的结果需要完全将表 1 'specialties' 列中的内容与表 2 中的 'specialties' 匹配。
问题是表2中的专业顺序与表1中专业的顺序不匹配。
我希望表 1 中的 userID = 1 与表 2 中的这一行相匹配,因为它们具有相同的特性。有谁知道我怎样才能让这些数据匹配?
表 1:
select
userID
,specialties
from table1
where userID = 1
| userID | specialties |
|---|---|
| 1 | Water & Environment, Built Environment, Flood & Flood risk, Civil & Environmental, Specialists, Environmental |
表 2:
| specialties |
|---|
| Built Environment, Water & Environment, Civil & Environmental, Environmental, Specialists, Flood & Flood risk |
【问题讨论】:
-
永远不要将数据存储为逗号分隔的项目。它只会给你带来很多问题。
-
您的数据模型有缺陷,Specialties 应该是一个带有 UserId FK 的表,并且每个 row 将是一个单一的专业 - 那么您的任务会简单得多(并且性能更高)
-
这不是我的数据模型,可悲的是它是一个客户。我知道像这样存储数据的问题,但是它们正在迁移到我们自己
标签: sql sql-server-2016