0
我遇到了SQL select语句的问题。我承认我是新手,所以我提前为任何不正确的术语道歉。SQL:只有一次筛选项目时被多对多筛选
所以我试图选择一个具有预定标记的调用。我面临的问题是,如果一个调用有多个标签,它将返回每个标签的调用,这会否定我正在尝试执行的所有操作。我只需要指导如何在桌子上使用多对多,并且只选择一个项目而不是每个标签。
继承人一个简单的示例查询,除了双向上调用以外的工作很棒。
SELECT `call`.`id`, `call`.`phone_number`, COUNT(`call`.`phone_number`)
FROM `call`
INNER JOIN `call_tag` on `call_tag`.`call_id` = `call`.`call_id`
INNER JOIN `tag` on `tag`.`id` = `call_tag`.`tag_id`
WHERE `tag`.`id` IN (1,2,3)
AND `call`.`phone_number` IN ('4445556666', '6665554444', '8889997777')
AND `call_date` BETWEEN '2015-01-01 07:00:00+00:00' and '2015-03-20 05:59:59+00:00'
GROUP BY `call`.`id`
我试过使用独特的命令,但它没有改变我的结果。我将在此期间进行研究,如果我找到解决方案,我会分享它。
你能提供样品数据和想要的结果吗?考虑到你是由id分组的,你不应该在你发布的查询中返回重复。 – sgeddes
你有一个'group by'。它不会多次拨打电话。 –
它不会多次返回一个电话号码,但会占用计数。 – hines