Relación de muchos a muchos INSERTAR

Estoy tratando de crear una relación de muchos a muchos entre 2 tablas. Tengo 3 tables para eso. Sigue el model TOXY.

table a: a.id (primary key) table ab: ab.a_id (foreign key) ab.b_id (foreign key) table b: b.id (primary key) 

¿Cómo debo insert los datos para que estén todos vinculados?

¿Me gusta esto? "INSERT INTO a ('name') VALUES ('my name')";

entonces así? "INSERT INTO b ('name') VALUES ('my name')";

pero luego tengo que tener el a.id y el b.id para ponerlo en la tabla ab. ¿Cómo debería recuperarlos?

Sé que podría hacer un SELECCIONADO a.id DESDE un DONDE nombre = 'mi nombre'. pero ¿no hay una forma más fácil para esto que devuelve automáticamente una identificación cuando INSERTAS la fila?

Todo lo que necesita hacer es almacenar esos ID en variables para usar en una consulta para insert en la tabla ab . LAST_INSERT_ID() devuelve el ID de las filas insertadas. Entonces, en PHP por ejemplo:

 // Run command to insert into A, then: $a = mysql_query('SELECT LAST_INSERT_ID();'); // Run command to insert into B, then: $b = mysql_query('SELECT LAST_INSERT_ID();'); // Then $a and $b hold the IDs that you can use to insert into AB. mysql_query("INSERT INTO ab (a_id, b_id) VALUES ($a, $b);"); 

Puede get el valor almacenado en la columna de key primaria auto_increment llamando a la function mysql_insert_id () :

 SELECT LAST_INSERT_ID() 

No estoy seguro de cuál es el model de TOXY, pero usaría una unión simple:

SELECT * FROM a INNER JOIN ab on a.id=ab.a_id WHERE ab.b_id = {b.id};

y para su instancia, {b.id} sería last_insert_id ();