У меня есть две таблицы:
Таблица 1:
| id | имя |
Таблица 2
| id | table_1_id |
Таблица_1 имеет много строк, и я хотел бы выбрать наибольшее значение идентификатора из таблицы_1 & вставьте его как новую запись в table_2 в столбце table_1.
Есть ли кто-нибудь, кто мог бы помочь мне с mysql для этого, так как я не смог этого достичь? Из того, что я прочитал, мне нужно было объединить столбцы, но я не смог найти правильный синтаксис.
Спасибо за любую помощь!
Assign both table id is primary & auto increment
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
$sql = "INSERT INTO table_1 (name) VALUES ('kane')";
if ($conn->query($sql) === TRUE) {
/// Table1 value insert successfully
$last_insert_id = $conn->insert_id;
$sql1 = "INSERT INTO table_2 (table_1_id) VALUES ($last_insert_id)";
if ($conn->query($sql) === TRUE) {
/// Table2 value insert successfully
}
}
INSERT INTO table_2
SELECT <new_id_value> id, MAX(id) table_1_id FROM table_1;
как насчет этого:
INSERT INTO table2 (id, table_1_id) VALUES (null, (SELECT MAX(id) FROM table_1 ))
РЕДАКТИРОВАТЬ: я предполагаю, что идентификатор в таблице 2 является auto_increment или имеет другое значимое значение по умолчанию. Другой вариант — просто пропустить столбец id во вставке, однако IMO, что плохо для читабельности кода.