使用 mysql 根据另一个表中的最大值将新记录插入表中?



我有两个表:

table_1:

|

ID | 姓名 |

table_2

|

ID | table_1_id |

table_1有很多行,我想从table_1中选择最高的 id 值并将其作为新记录插入table_1列中的table_2中。

有没有人可以帮助我解决这个问题的 mysql,因为我无法实现它?根据我所读的内容,我需要加入列,但我无法找到正确的语法。

感谢您的任何帮助!

这个怎么样:

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

编辑:我假设表2中的id是auto_increment或具有其他有意义的默认值。另一种选择是简单地省略插入中的 id 列,但 IMO 对代码可读性不利。

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;

最新更新