[英]Join two tables and update third table in MySql
I am trying to join two tables tblN1
and tblN2
to get the number of total access for user and update the third table tblNCC
without success because I have error: 我试图加入两个表
tblN1
和tblN2
来获取用户的总访问次数,并更新第三个表tblNCC
而不成功,因为我tblNCC
错误:
[Err] 1054 - Unknown column 't.UserN1' in 'on clause'
I don't understand this error ... the column t.UserN1
is in Select sql query. 我不理解此错误...
t.UserN1
列在“选择sql查询”中。
Maybe the problem is the Union All
syntax ? 也许问题是
Union All
语法?
My code below, please help me. 我下面的代码,请帮助我。
Thank you so much in advance. 提前非常感谢您。
UPDATE tblNCC AS CC
JOIN (
SELECT
sum(total) AS Total
FROM
(
SELECT
COUNT(*) AS Total,
UserN1
FROM
`tblN1`
WHERE
UserN1 IN ('7047505')
AND dateN1 BETWEEN MAKEDATE(YEAR(CURDATE()), 1)
AND CURDATE()
UNION ALL
SELECT
COUNT(*) AS Total,
UserN2
FROM
`tblN2`
WHERE
UserN2 ('7047505')
AND dateN2 BETWEEN MAKEDATE(YEAR(CURDATE()), 1)
AND CURDATE()
) AS t
) AS q ON t.UserN1 = CC.UserNcc
SET CC.Total = t.Total;
[Err] 1054 - Unknown column 't.UserN1' in 'on clause'
t
is not in the scope. t
不在范围内。 it's inside q
. 在
q
里面。
You probably mean something like this: 您可能的意思是这样的:
UPDATE tblNCC AS CC
JOIN (
SELECT
username,
sum(total) AS Total
FROM
(
SELECT
COUNT(*) AS Total,
UserN1 as username
FROM
`tblN1`
WHERE
UserN1 IN ('7047505')
AND dateN1 BETWEEN MAKEDATE(YEAR(CURDATE()), 1)
AND CURDATE()
UNION ALL
SELECT
COUNT(*) AS Total,
UserN2 as username
FROM
`tblN2`
WHERE
UserN2 ('7047505')
AND dateN2 BETWEEN MAKEDATE(YEAR(CURDATE()), 1)
AND CURDATE()
) AS t
) AS q ON q.username = CC.UserNcc
SET CC.Total = q.Total;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.