如何比较不同表中的列数?

问题描述 投票:-1回答:1

我有三张桌子:人,消息和朋友。现在我需要向每个拥有相同数量的朋友并发送消息的人展示。

人拥有每个人的信息,最重要的是电子邮件。消息有一个名为“fromemail”的列,它显示发送消息的人,并且还有一个“email”列,该列引用了表人。

sql postgresql
1个回答
0
投票

你可以尝试类似的东西:

SELECT p1.email, p2.email
FROM
    (SELECT email, count(message_id) m_count, count(friend_id) f_count
        FROM
            person p
            JOIN message m ON p.email = m.email
            JOIN hasfriend f ON p.email = f.email) p1,
    (SELECT email, count(message_id) m_count, count(friend_id) f_count
        FROM
            person p
            JOIN message m ON p.email = m.email
            JOIN hasfriend f ON p.email = f.email) p2
WHERE
    p1.email = p2.email AND
    p1.m_count = p2.m_count AND
    p1.f_count = p2.f_count;
© www.soinside.com 2019 - 2024. All rights reserved.