Вставить новую запись в таблицу на основе самого высокого значения в другой таблице с MySQL?

У меня есть две таблицы:

Таблица 1:

| id | имя |

Таблица 2

| id | table_1_id |

Таблица_1 имеет много строк, и я хотел бы выбрать наибольшее значение идентификатора из таблицы_1 & вставьте его как новую запись в table_2 в столбце table_1.

Есть ли кто-нибудь, кто мог бы помочь мне с mysql для этого, так как я не смог этого достичь? Из того, что я прочитал, мне нужно было объединить столбцы, но я не смог найти правильный синтаксис.

Спасибо за любую помощь!

0

Решение

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
}


}
0

Другие решения

INSERT INTO table_2
SELECT <new_id_value> id,  MAX(id) table_1_id FROM table_1;
0

как насчет этого:

INSERT INTO table2 (id, table_1_id) VALUES (null, (SELECT MAX(id) FROM table_1 ))

РЕДАКТИРОВАТЬ: я предполагаю, что идентификатор в таблице 2 является auto_increment или имеет другое значимое значение по умолчанию. Другой вариант — просто пропустить столбец id во вставке, однако IMO, что плохо для читабельности кода.

0
По вопросам рекламы [email protected]