简体   繁体   English

MySQL从两个表中计数值

[英]MySQL count values from two tables

I have two identical tables - logins and visits. 我有两个相同的表-登录和访问。 Which contains: 其中包含:

ID | address | mac_address | date

How can I make a php query to count logins and visits from mac address kind of this: 我该如何进行php查询以计算来自mac地址的登录次数和访问次数:

MAC | Logins | Visits

For now I have 现在我有

SELECT mac_address, COUNT(mac_address) AS login_cnt FROM logins GROUP BY mac_address ORDER BY login_cnt DESC

which gives me just 这给了我

MAC | Logins
SELECT
    mac_address,
    SUM(logins_mac_count) AS logins_mac_sum,
    SUM(visits_mac_count) AS visits_mac_sum
FROM (
        SELECT mac_address, COUNT(*) AS logins_mac_count, 0 AS visits_mac_count
        FROM logins
        GROUP BY mac_address
    UNION
        SELECT mac_address, 0 AS logins_mac_count, COUNT(*) AS visits_mac_count
        FROM visits
        GROUP BY mac_address
) AS t
GROUP BY mac_address

Try this: 尝试这个:

SELECT 
    IFNULL(logins.mac_address, visits.mac_address) AS unique_mac_address,
    COUNT(login.mac_address) AS count_logins,
    COUNT(visits.mac_address) AS count_visits
FROM logins
LEFT JOIN visits ON logins.mac_address = visits.mac_address
GROUP BY unique_mac_address

Note: I haven't tested this as I don't have your schema/test data here, but I think this should work. 注意:我没有测试过,因为这里没有您的架构/测试数据,但是我认为这应该可行。 Let me know if not. 让我知道是否。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM