如何从选择查询更新表中的列?

问题描述 投票:-1回答:1

我有一个查询,但我希望查询的结果更新到另一个表,在第3,第4,第5和第6列,因为我已经在第一和第二列中有值。

我的查询:

INSERT INTO customer_info (reader_ID,tag_no,area,max_timestamp) 
SELECT   aisle_info.reader_ID,tag_no,
         aisle_info.area,
         TIMESTAMPDIFF(SECOND,MIN(timestamp),MAX(timestamp)) AS MAXTIME
FROM     tag_logs
   INNER JOIN aisle_info ON
         tag_logs.reader_ID = aisle_info.reader_ID
WHERE    tag_no = 515988190124;

1364 - Field 'Customer_name' doesn't have a default value

sql phpmyadmin
1个回答
0
投票

在TSQL中 - 当您将值(添加)更新(添加)到表update中的现有行时,您应该编写insert into select语句而不是customer_info。伪代码应如下所示:

Update C
set C.reader_ID     = A.reader_ID,
    C.tag_no        = A.tag_no,
    C.area          = A.area,
    C.max_timestamp = TIMESTAMPDIFF(SECOND,MIN(T.timestamp),MAX(T.timestamp))

from customer_info C
join aisle_info  A on A. tag_no = C. tag_no --Change here for correct join condition
join tag_logs T ON T.reader_ID = A.reader_ID
WHERE T.tag_no = 515988190124;
© www.soinside.com 2019 - 2024. All rights reserved.