0

不得不表。主人和客人。

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)

期望的结果是输出带有 HOSTS 的行和他们有多少 GUESTS的COUNT ,其中 HOSTS 和GUESTS的确认日期和时间2013 年 11 月 10 日14:00:00之前。

之前收到过答案,但没有WHERE语句,看起来像这样:

SELECT   HOSTS.*, COUNT(gid)
FROM     HOSTS LEFT JOIN GUESTS USING (hid)
GROUP BY hid

查询应该如何包含HOSTS 和 GUESTS之前的 2013-11-10 14:00:00?

4

1 回答 1

0

使用以下条件,我不确定 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
于 2013-11-13T20:29:11.950 回答