Veamos la sintaxis para realizar consultas múltiples. Se recomienda crear un Alias a la tabla para crear un código más legible.
Ejm1
SELECT * FROM table1 AS t1 INNER JOIN table2 AS t2;
Ejm2
SELECT * FROM table1 AS t1 INNER JOIN table2 AS t2 ON t1.a_field = t2.a_field
Ejm3
SELECT t1.field1, t1.field2, t1.field3, t2.fiel1, t2.field2 FROM table1 AS t1 INNER JOIN table2 AS t2 ON t1.field1 = t2.field5 WHERE t1.field1 = 'a_value' ORDER BY t1.field3 DESC;
La claúsula INNER JOIN nos permite unir tablas. Si utilizamos el primer ejm, MySQL va a unir todos los campos de esas dos tablas, pudiendo duplicar los mismos, ya que no estamos especificando ninguna condición.
Veamos un ejm utilizando nuestra base de datos.
Ejm
SELECT * FROM movies AS m INNER JOIN status AS s;
Esta sentencia duplicaría contenido ya que no le estamos poniendo ninguna restricción, para que únicamente crease un valor tenemos que escribir lo siguiente.
Ejm
SELECT * FROM movies AS m INNER JOIN status AS s ON m.status = s.status_id;
Cuando unimos dos tablas mediante los JOINS tenemos que utilizar la sintaxis tabla.registro.
Ejm
SELECT * FROM movies AS m INNER JOIN status AS s ON m.status = s.status_id WHERE s.status = 'Canceled' ORDER BY m.premiere;
FullText Key
En este caso la sintaxis es la siguiente.
Ejm
SELECT * FROM movies WHERE MATCH(title, author, actors, genres) AGAINST('ET' IN BOOLEAN MODE);
La función MATCH() en MySQL lo que hace es unir en que campos queremos buscar, en nuestro ejm, los campos en los que queremos buscar es en title, author, actors y genres, y la claúsula AGAINST hay que pasarle entre comillas el valor que estamos buscando, y las palabras reservadas IN BOOLEAN MODE.
También se pueden hacer consultas múltiples FullText Key, la sintaxis sería la siguiente.
SELECT t1.field1, t1.field2, t2.field1, t2.field2 FROM table1 AS t1 INNER JOIN table2 AS t2 ON t1.field1 = t2.field2 WHERE MATCH(t1.field1, t1.field2, t2.field1, t2.field2) AGAINST('a_search' IN BOOLEAN MODE);
Como vemos, en el WHERE MATCH() ponemos los campos que necesitamos, utilizando nuestro JOIN.
Ejm
SELECT m.title, m.category, m.country, m.genres, m.premiere, s.status FROM movies AS m INNER JOIN status AS s ON m.status = s.status_id WHERE MATCH(m.title, m.author, m.actors, m.genres, s.status) AGAINST('drama' IN BOOLEAN MODE) ORDER BY m.premierre;