简体   繁体   English

如何在查询中将两个或多个表内部连接在一起?

[英]How to inner join two or more tables together in a query?

The query i want to the results should get updated in my customer_info table.我想要结果的查询应该在我的 customer_info 表中更新。 I do know have any relation ships between the table, however i have to use inner join to run queries.我知道表之间有任何关系,但是我必须使用内部联接来运行查询。 Please help.请帮忙。

current tags table当前标签表

_reader_ID_|__tag_no__|__area |_maxtime_____
           |          |       |

Tag_logs table标签日志表

reader_ID_|__tag_no__|timestamp___
          |          |       

Aisle_info table Aisle_info 表

reader_ID_|_area_|
          |      |      

customer_info table客户信息表

name_|__email__|__reader_id |_tag_no|_area|_maxtime_
     |         |            |       |     |
INSERT INTO customer_info
SELECT aisle_info.reader_ID, tag_no, aisle_info.area, customer_info.name, TIMESTAMPDIFF(SECOND,MIN(timestamp),MAX(timestamp)) AS MAXTIME FROM tag_logs INNER JOIN aisle_info ON tag_logs.reader_ID = aisle_info.reader_ID AND customer_info INNER JOIN current_tags ON customer_info.name = customer_info.name 
WHERE tag_no = 3222813112261

1052 - Column 'tag_no' in field list is ambiguous 1052 - 字段列表中的“tag_no”列不明确

You should add the table name when a column is present in more then a table so assuming that tag_no is present in tag_logs table try tag_logs.tag_no当一列存在于多个表中时,您应该添加表名,以便假设 tag_no 存在于 tag_logs 表中,请尝试 tag_logs.tag_no

INSERT INTO customer_info
SELECT aisle_info.reader_ID
    , tag_logs.tag_no
    , aisle_info.area
    , customer_info.name
    , TIMESTAMPDIFF(SECOND,MIN(timestamp)
    ,MAX(timestamp)) AS MAXTIME 
FROM tag_logs 
INNER JOIN aisle_info ON tag_logs.reader_ID = aisle_info.reader_ID 
    AND customer_info 
INNER JOIN current_tags ON customer_info.name = customer_info.name 
WHERE tag_logs.tag_no = 3222813112261

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM