[英]mysql: join two tables with two fields in common to get a third table
[英]Join two tables and update third table in MySql
我試圖加入兩個表tblN1
和tblN2
來獲取用戶的總訪問次數,並更新第三個表tblNCC
而不成功,因為我tblNCC
錯誤:
[Err] 1054 - Unknown column 't.UserN1' in 'on clause'
我不理解此錯誤... t.UserN1
列在“選擇sql查詢”中。
也許問題是Union All
語法?
我下面的代碼,請幫助我。
提前非常感謝您。
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
不在范圍內。 在q
里面。
您可能的意思是這樣的:
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.