У меня есть запрос, который выполняется отлично, пока я не попытаюсь вставить результаты в новую таблицу. После обыска и изменения вещей здесь и там, которые на самом деле не сильно отличаются от моего первоначального запроса, я надеюсь, что кто-то здесь сможет понять, что происходит.INSERT, используя SELECT LEFT JOIN
INSERT INTO new_table(col1, col2, col3, col4)
SELECT t1.col1, t2.col2, t1.col3, t1.col4
FROM table1 t1 LEFT JOIN table2 t2 ON (t1.col1=t2.col1)
WHERE (t2.col1 IS NOT NULL)
Когда я запускаю этот запрос, новая таблица заполнена, как будто я только что сказал INSERT INTO new_table SELECT * FROM table1, который, очевидно, вырезает какой-либо из соответствующих значений из table2. Как я уже сказал, выполнение этого запроса без инструкции INSERT возвращает точные результаты. Есть идеи?
неправильных типов столбцов? – Sebas
Почему вы делаете левое соединение на col1, а затем создаете 'WHERE' be' t2.col1 IS NOT NULL'? Это генерирует тот же набор, что и регулярное соединение. – dnagirl
@Sebas Это неловко, но да, это была проблема. Спасибо, что заставил меня взглянуть на это. Могли бы поклясться, что они были такими же. – Tim