MySQL 查询一个查询并根据第一个查询和 COUNT 的 WHERE 语句返回 COUNT

标签 mysql

必须表。 主人和客人。

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/

相关文章:

java - javax.persistence 中的 ManyToMany 允许重复条目

php - MySQL 404 错误,找不到 php 文件

mysql - 标签数据库关系数据的优势

php - PDO PHP 在 BetweenPlaceholders 中添加 "AND"

php - 如何在 Eloquent 中获取一个属性抛出一个表?

mysql 表设计用于每日轮换顶级评分

mysql - 如何为多源复制删除 mariaDB 指定的 Connection_name

php - 使用 PHP 给出日期,使用 SQL 获取数据

mysql - 如何将Excel存储的数据导入MySQL并保持日期格式为yyyy-mm-dd hh :mm:ss

java.sql.SQLException : Illegal hour value '50' for java. sql.Time 类型的值 '50:51:05