【发布时间】:2014-01-18 11:41:19
【问题描述】:
我有两个表“客户”和“活动”:
customers
-------------
id | int
-------------
name | varchar
campaigns
----------------------
id | int
----------------------
customers_id | int
----------------------
name | varchar
一个客户可以有多个广告系列。两个表之间的关联是通过campaigns.customers_id = customers.id。
现在我想获取所有已获得名称为“A”和名称为“B”的活动的客户。
我尝试了带有IN 语句的JOIN,但它返回了所有已收到广告系列“A”或“B”的客户:
SELECT
customers.name
FROM
customers
JOIN
campaigns
ON
customers.id=campaigns.customers_id
WHERE
campaigns.name IN('A','B')
非常感谢!
【问题讨论】:
-
您加入了错误的列。另外... Group by ... 具有 count(*) = n - 其中 n 为否。 IN() 中的项目数(假设 (customer,campaign) 是唯一的
-
Strawberry:感谢您指出列名。你是对的,编辑了我的问题。