必须表。 主人和客人。
HOST 表如下所示。
* hid (INT, Primary Key, Auto-Increment)
* firstname (VARCHAR)
* lastname (VARCHAR)
* email (VARCHAR)
* registered (DATETIME)
* confirmed (DATETIME)
GUESTS 表如下所示:
* gid (INT, Primary Key, Auto-Increment)
* hid (INT)
* firstname (VARCHAR)
* lastname (VARCHAR)
* email (VARCHAR)
* registered (DATETIME)
* confirmed (DATETIME)
期望的结果是输出包含主机和COUNT他们有多少客人的行,其中确认日期和时间早于 2013-11-10 14:00:00 对于主机和 guest 双方。
之前收到过答案,但没有 WHERE 语句,看起来像这样:
SELECT HOSTS.*, COUNT(gid)
FROM HOSTS LEFT JOIN GUESTS USING (hid)
GROUP BY hid
对于 HOSTS 和 GUESTS 来说,查询应如何包含 before 2013-11-10 14:00:00?
最佳答案
使用下面的条件,我不确定MYSQL的确切语法,但是尝试这样,这是在DB2中,您可能需要更改子查询中的WHERE条件
SELECT *H.*, J.CNT_GID
FROM HOSTS AS H
INNER JOIN
(
SELECT G.HID, COUNT(GID) AS CNT_GID
FROM GUESTS AS G
WHERE GUESTS.CONFIRMED < DATE('2013-11-10 14:00:00') #you may need to change here
GROUP BY G.HID
) AS J
ON H.HID = J.HID
关于MySQL 查询一个查询并根据第一个查询和 COUNT 的 WHERE 语句返回 COUNT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19963582/