MySQL Temporary Tables Too Temporary

I am working with MySQL and I am trying to use temporary tables.
Unfortunately my temporary tables are being a little too temporary and I
can't access them from one query to the next.

If I create a table in a query, I would like to be able to insert more into
it in the next query and even select from it again afterwards.

I have a feeling this is a simple question, but I have been unable to find
any helpful information.

Does anyone know this trick?

//This is what I am doing...

  q := TSQLQuery.Create(Self);
  q.SQLConnection := SQLConnection1;
  q.SQL.Clear;
  q.SQL.Add('CREATE TEMPORARY TABLE tmp');
  q.SQL.Add('   SELECT StartTime, Duration');
  q.SQL.Add('   FROM appointment');
  q.ExecSQL;

  q.SQL.Clear;
  q.SQL.Add('INSERT INTO tmp');
  q.SQL.Add('   SELECT StartTime, Duration');
  q.SQL.Add('   FROM staff_off_time o');
  q.ExecSQL;

  q.SQL.Clear;
  q.SQL.Add('SELECT * from tmp');
  q.Open;