2013-12-04 4 views
0

Я пытаюсь вставить sap_id из butikkdata2 в energy_stage_ext2, используя левое соединение на male_id.Сообщение об ошибке: Не уникальная таблица/псевдоним MySQL

Это мой запрос:

insert into energi_stage_ext2 (maale_id, maale_date, kwh_t, lev_id, 
           konsept, name, slag, sap_id) 
select butikkdata2.sap_id 
    from butikkdata2 left join butikkdata2 
      ON energi_stage_ext2.maale_id=butikkdata2.maale_id; 

Но я получаю сообщение об ошибке: Не уникальный стол/псевдоним.

Любые идеи?

+2

'из butikkdata2 левый join butikkdata2'. Как он знает, какой из них вы хотите? Вы должны дать один (или оба) псевдоним. –

+0

@RocketHazmat Вы должны отправить ответ –

ответ

0

Вы делаете from butikkdata2 left join butikkdata2, а затем задаете energi_stage_ext2.maale_id=butikkdata2.maale_id.

Как знать, что вы ищете butikkdata2? Тот, что находится в FROM, или тот, что находится в JOIN?

Вам необходимо указать один (или оба) псевдоним.

INSERT INTO energi_stage_ext2 (maale_id, maale_date, kwh_t, lev_id, konsept, name, slag, sap_id) 
SELECT bu1.sap_id 
FROM butikkdata2 AS bu1 
LEFT JOIN butikkdata2 AS bu2 ON energi_stage_ext2.maale_id=bu2.maale_id; 

Теперь, я назвал их bu1 и bu2. Убедитесь, что в запросе вы указываете правильное поле из правой таблицы.

P.S. Я не уверен, что вы действительно можете сделать energi_stage_ext2.maale_id=bu2.maale_id. Вы не присоединяетесь к energi_stage_ext2 в своем запросе. Вы, возможно, должны присоединиться к этому, во-первых, я не уверен на 100%.

+0

Вы вправе предположить, что я не могу сделать -'energi_stage_ext2.maale_id = bu2.maale_id'. Это дает мне неизвестную колонку в разделе. Хм. Мне нужно подойти к этому по-другому. Благодарю. – Alexander

+0

@ user2718837: Мое предложение - просто сосредоточиться на 'SELECT' на данный момент. Получите эту работу, затем добавьте 'INSERT INTO'. Постскриптум «SELECT» должен возвращать столько же полей, сколько и 'INSERT'ing. –