mysqllastinsertid

SELECT last id, without INSERT


I'm trying to retrieve the id of one table A to insert into another table B. I cannot use last_insert_id() as i have not inserted anything into A. Any ideas on how to do this nicely?

$n = mysql_query("SELECT max(id) FROM tablename"); doesn't seem to work, nor does

$n = mysql_query("SELECT max(id) FROM tablename GROUP BY id");

Solution

  • In MySQL, this does return the highest value from the id column:

    SELECT MAX(id) FROM tablename;
    

    However, this does not put that id into $n:

    $n = mysql_query("SELECT max(id) FROM tablename");
    

    To get the value, you need to do this:

    $result = mysql_query("SELECT max(id) FROM tablename");
    
    if (!$result) {
        die('Could not query:' . mysql_error());
    }
    
    $id = mysql_result($result, 0, 'id');
    

    If you want to get the last insert ID from A, and insert it into B, you can do it with one command:

    INSERT INTO B (col) SELECT MAX(id) FROM A;