簡體   English   中英

連接兩個表並在MySql中更新第三個表

[英]Join two tables and update third table in MySql

我試圖加入兩個表tblN1tblN2來獲取用戶的總訪問次數,並更新第三個表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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM