Вставка нескольких строк с помощью select

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

$partner_id - связать строки друг с другом. Для этого im использует сгенерированное 32char значение в php. Есть ли способ установить edit_partner_id с mysql в качестве идентификатора первой вставленной строки или это невозможно из-за того, что первая строка должна быть создана, прежде чем вы сможете получить последний id?

Можно ли также добавить обновление к этому или мне нужно будет запустить его в отдельном запросе?

$sql = "INSERT INTO edits_customers (customer_id, creator_id, firstname, surname,
            house_no, address_1, address_2, address_3, city, county, postcode,
            country, email, home_tel, mobile_tel, work_tel, notes, edit_type,
            edit_partner_id )
        (SELECT *, 'before', '{$partner_id}' FROM customers WHERE customers.id = 123),
        ('{$var1}', '{$var2}', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
            '', 'after', $partner_id)";

Спасибо

Ответы

Ответ 1

Если я правильно понимаю ваш вопрос, когда вы пытаетесь вставить некоторые данные из другой таблицы и некоторые данные, которые вы предоставляете сами, вы должны сделать что-то подобное с помощью UNION:

INSERT INTO SomeTable ( Col1, Col2, Col3 )
SELECT Val1, Val2, Val3 FROM SomeOtherTable
UNION
SELECT 'MyProvidedVal1', 'MyProvidedVal2', 'MyProvidedVal3'

Надеюсь, что это поможет...