联接多列匹配

时间:2020-05-18 09:22:11

标签: mysql sql

我有两个SQL表,其中第二个表中的条件匹配两次,因此join使计数加倍。 一个是事件表,它捕获senderId,receiverId,statusId和bulkId。另一个表是“电话”表,该表捕获userId和phoneNumber。一个用户可以拥有多个电话,因此“电话”表中可以有一个用户多个条目。

我写一个类似的查询:-

SELECT 
    receiverId,
    senderId,
    ph.number,
    SUM(CASE
        WHEN e.statusId IN (40 , 41) THEN 1
        ELSE 0
    END) AS failed,
    COUNT(e.statusId) AS total
FROM
    Events e
        JOIN
    Phones ph ON ph.userId = e.senderId
WHERE
    e.bulkId = 3;

不幸的是,以上查询将failedtotal乘以电话号码计数,但我希望避免这种情况。

0 个答案:

没有答案