Как выполнить внутреннее объединение двух или более таблиц в запросе?

#mysql #sql

#mysql #sql

Вопрос:

Запрос, который я хочу получить с результатами, должен обновляться в моей таблице customer_info. Я знаю, что между таблицами есть какие-либо связи, однако я должен использовать внутреннее соединение для выполнения запросов. Пожалуйста, помогите.

таблица текущих тегов

 _reader_ID_|__tag_no__|__area |_maxtime_____
           |          |       |
  

Таблица Tag_logs

 reader_ID_|__tag_no__|timestamp___
          |          |       
  

Таблица Aisle_info

 reader_ID_|_area_|
          |      |      
  

таблица customer_info

 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 — Столбец ‘tag_no’ в списке полей неоднозначен

Ответ №1:

Вы должны добавить имя таблицы, когда столбец присутствует не только в таблице, поэтому, предполагая, что 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
  

Комментарии:

1. Спасибо за ответ. Я только что попробовал этот метод, но я получил эту ошибку # 1054 — Неизвестный столбец ‘customer_info.name ‘ в ‘списке полей’

2. @KashfiRahman что ж, если мой ответ правильный (за последние 15 минут), пожалуйста, отметьте его как принятый … смотрите, как здесь meta.stackexchange.com/questions/5234 /…

3. ваш ответ выдает мне эту ошибку # 1054 — Неизвестный столбец ‘customer_info.name ‘ в ‘списке полей’ Как мне это исправить?

4. столбец customer_info.name находится в вашем запросе, обязательно укажите имя столбца eaxct… Ваш столбец — это name or name_ с inderscore … или что-то другое, вы должны использовать правильное имя всегда..