在一个SQL字符串中组合多个用户操作

在一个SQL字符串中组合多个用户操作,sql,Sql,我正在尝试编写一个SQL查询,该查询将向我显示所有已单击所有3个电子邮件职务ID的联系人: Select CM.* from [US_B2B_TRADE_Contacts113020] CM join [_Click] C On CM.[Contact ID] = C.subscriberkey where C.JobID IN ('13498391') and where C.JobID IN ('15194352') and where C.JobID IN ('15194353') and

我正在尝试编写一个SQL查询,该查询将向我显示所有已单击所有3个电子邮件职务ID的联系人:

Select CM.* from [US_B2B_TRADE_Contacts113020] CM join [_Click] C On CM.[Contact ID] = C.subscriberkey
where C.JobID IN ('13498391') and where C.JobID IN ('15194352') and where C.JobID IN ('15194353') and (C.URL like '%hurtigruten%')

您显然误解了应该如何构造WHERE子句

而不是

Select CM.*
from [US_B2B_TRADE_Contacts113020] CM
join [_Click] C On CM.[Contact ID] = C.subscriberkey
where C.JobID IN ( '13498391' )
and
where C.JobID IN ( '15194352' )
and
where C.JobID IN ( '15194353' )
and
(C.URL like '%hurtigruten%')
应该是

Select CM.*
from [US_B2B_TRADE_Contacts113020] CM
join [_Click] C On CM.[Contact ID] = C.subscriberkey
where C.JobID IN ( '13498391' )
and
C.JobID IN ( '15194352' )
and
C.JobID IN ( '15194353' )
and
(C.URL like '%hurtigruten%')
关键字“WHERE”只需在子句开头指定一次,即使您对语句应用了多个条件

我正在尝试编写一个SQL查询,它将向我显示所有点击了所有3个电子邮件工作ID的联系人

为了回答这个问题,您需要某种方式来组合来自不同行的信息。为什么?一行没有多个
jobId
s

这样做的目的是筛选出至少有一个作业ID的所有联系人。然后检查它们是否具有所有三个:

select CM.[Contact ID]
from [US_B2B_TRADE_Contacts113020] CM join
     [_Click] C
     On CM.[Contact ID] = C.subscriberkey
where C.JobID IN ('13498391', '15194352', '15194353') and
      C.URL like '%hurtigruten%'
group by CM.[Contact ID]
having count(distinct c.JobId) = 3;
注:

  • 中的
    比一组
    条件方便得多
  • 如果
    JobId
    确实是一个数字,则删除单引号。不要混合数据类型
  • 如果给定联系人的
    JobId
    不能有重复项,则使用
    count(*)=3
    而不是
    count(distinct)

您需要包括一些关于您遇到的实际问题的信息。您说您正在“尝试编写SQL查询”。。。。。。看起来你已经写了一本。。。。那又怎么样?你收到了一条错误消息?你没有看到你期望的结果?您可能还需要在查询的表中显示一个数据示例,因为没有人会从本质上理解您试图查询的数据。另外,请标记您正在使用的特定RDBMS,因为不同系统之间的查询语法可能不同Hanks Craig,很抱歉没有包含更多信息。我收到了一个错误“Errors:关键字'where'附近的语法不正确”。我基本上想拉一个在这三个作业ID内单击的记录。SQL字符串会拉入联系人。阅读文档,而不是试图构建自己的语法实际上,我第一次甚至没有注意到它。。。。。你不需要每次都说“在哪里”。在第一个“where”之后,您只需要在标准之间加上“and”。用您正在使用的数据库标记您的问题。Craig,非常感谢您,我是SQL新手,非常感谢您抽出时间提供帮助。没问题。如果你对我的答案满意,你能投我一票吗?