gpt4 book ai didi

where子句中的MySQL未知列?

转载 作者:可可西里 更新时间:2023-11-01 07:39:24 27 4
gpt4 key购买 nike

我有两个数据库。一个名为 INFO,包含三个表(StoriesCommentsReplies)

Stories 有以下字段

+--------------+----------------+------+-----+---------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+----------------+------+-----+---------------------+-----------------------------+
| storyID | int(11) | NO | PRI | NULL | |
| originalURL | varchar(500) | YES | | NULL | |
| originalDate | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| numDiggs | int(11) | YES | | NULL | |
| numComments | int(11) | YES | | NULL | |
| diggURL | varchar(500) | YES | | NULL | |
| rating | varchar(50) | YES | | NULL | |
| title | varchar(200) | YES | | NULL | |
| summary | varchar(10000) | YES | | NULL | |
| uploaderID | varchar(50) | YES | | NULL | |
| imageURL | varchar(500) | YES | | NULL | |
| category1 | varchar(50) | YES | | NULL | |
| category2 | varchar(50) | YES | | NULL | |
| uploadDate | timestamp | NO | | 0000-00-00 00:00:00 | |
| num | int(11) | YES | | NULL | |
+--------------+----------------+------+-----+---------------------+-----------------------------+

另一个数据库称为Data,有一个表(User)。如下所示的字段:

+-------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+-------------+------+-----+---------+-------+
| userID | varchar(50) | NO | PRI | NULL | |
| numStories | int(11) | YES | | NULL | |
| numComments | int(11) | YES | | NULL | |
| numReplies | int(11) | YES | | NULL | |
| numStoryDiggs | int(11) | YES | | NULL | |
| numCommentReplies | int(11) | YES | | NULL | |
| numReplyDiggs | int(11) | YES | | NULL | |
| numStoryComments | int(11) | YES | | NULL | |
| numStoryReplies | int(11) | YES | | NULL | |
+-------------------+-------------+------+-----+---------+-------+

User.userID 包含数千个唯一名称。所有其他字段当前都是 NULLUser.userID 中的名称对应于 Stories.uploaderID 中的名称。

我需要为 User 中的每个 userID 计算相应名称从(即 num)Stories 上传的故事数并将此值插入 User.numStories

我提出的查询(产生错误)是:

INSERT INTO DATA.User(numStories) 
SELECT count(num)
FROM INFO.Stories
WHERE INFO.Stories.uploaderID=DATA.User.userID;

运行此查询时我得到的错误是

 Unknown column 'DATA.User.userID' in 'where clause'

对不起,如果这解释得不好。如果需要,我会尝试重新解释。

最佳答案

您不是在 User 表中创建新条目,而是更新现有条目。因此,insert 在这里不是正确的语法,而是 update:

UPDATE DATA.User u
JOIN (SELECT uploaderID, SUM(num) AS sumNum
FROM INFO.Stories
GROUP BY uploadedID) i ON i.uploaderID = u.userID
SET numStories = sumNum

编辑:
根据评论中的要求进行一些澄清。内部查询根据 uploaderIdStories 中的 num 求和。 updates 语句将 User 中的 numStories 更新为匹配 id 的内部查询的计算总和。

关于where子句中的MySQL未知列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29765735/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com