#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
orname_
с inderscore … или что-то другое, вы должны использовать правильное имя всегда..