【问题标题】:union result of multiple dynamic queries sql多个动态查询sql的联合结果
【发布时间】:2017-05-06 09:52:17
【问题描述】:

我有两个表 tblJobs 和 tblJobseeker。 tblJobs

JobId  skill     location
  5  .net, php    Mexico
  8   java        Boston
  9   sql, c++  London, Mexico

tbl求职者

ID   skill       location
 3   .net         Mexico
 7    sql         Boston
 10   java        Boston
 12   php         Mexico
 13   c++         London, Boston

现在我想遍历第一个表tblJobs 并根据skilllocation 找到匹配的求职者。对于tblJobs 中的每条记录,都会出现一个我需要与其他记录结果集联合的结果。我试图使用游标和动态查询,但是如何在动态查询中设置列skilllocation 的条件。两个表中的记录也可能不同

在上述情况下,结果应该是

ID   skill       location
 3   .net         Mexico
 12   php         Mexico
 10   java        Boston
 13   c++        London, Boston

我已经编辑了这个问题。这里我使用 charindex 来匹配结果,内连接是不可能的。可以有 n 个位置或技能,所以不同的列是不可能的。

【问题讨论】:

  • 请标记您正在使用的 RDBMS
  • 也添加预期结果。
  • 需要与其他记录结果集合并。还有哪些记录?
  • 重要的是你尝试了什么,样本数据和输出?

标签: sql dynamic sql-server-2012 cursor


【解决方案1】:

简单的内部连接就可以了:

select s.* 
from tblJobseeker s 
inner join tblJobs j
on s.skill = j.skill
and s.location = j.location;

【讨论】:

  • 嗨,Gurwinder,因为一条记录可以包含多个技能,因此内部连接无济于事
  • 在这种情况下,您需要规范化您的数据。它至少应该符合 1NF。在单元格中使用逗号分隔值是不好的做法
  • 我知道,但是技能或位置可以是多个,并且可以是任意数量
猜你喜欢
  • 2022-12-10
  • 1970-01-01
  • 2013-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-02
  • 2016-10-27
相关资源
最近更新 更多