1

如何使用表 B 的返回值将值插入表 A。我知道我可以使用 INSERT INTO SELECT 语句,但这要求源表和目标表中的数据类型匹配并且列是有序的,但我有下表因此:

表 A:

在此处输入图像描述

表 B:

在此处输入图像描述

现在我想计算表 A 中应该返回 8 的所有数据并将其保存在表 B 的总字段中,计算 user_id 大于 0 的数据应该返回 5 并将其保存在 total_log_in 字段中,并计算 user_id 我的数据null 应该返回 3 并将其保存在 total_un_log 中。我使用下面的代码,但得到错误请帮助如何做到这一点谢谢

 INSERT INTO `user_tracking_daily`(`total`, `total_log_in`, `total_un_log`, `date`) VALUES (SELECT COUNT(*) from `session`,
SELECT COUNT(*) from `session` where `user_id` > 0,SELECT COUNT(*) from `session` where `user_id` IS NULL,now());
4

1 回答 1

3

我会把它写成一个INSERT ... SELECT ...带有聚合查询的语句。

INSERT INTO `user_tracking_daily`(`total`, `total_log_in`, `total_un_log`, `date`) 
SELECT
    COUNT(*),
    SUM(user_id > 0),
    SUM(user_ID IS NULL),
    NOW()
FROM session
于 2020-04-21T08:15:26.757 回答