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

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

table_1:

|id |имя |

table_2

|id |table_1_id |

table_1 имеет много строк, и я хотел бы выбрать наибольшее значение id из table_1 и вставить его в качестве новой записи в table_2 в столбце table_1.

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

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

Ответы [ 3 ]

0 голосов
/ 07 июня 2018
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 голосов
/ 07 июня 2018
INSERT INTO table_2 
SELECT <new_id_value> id,  MAX(id) table_1_id FROM table_1;
0 голосов
/ 07 июня 2018

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...