top of page

Subselect MySQL

se crearon las siguientes tablas: book, publisher, autores y book2 que no tiene  registros.

 

se nos presenta una problematica donde queremos saber cual es el autor mas joven de todos.

 

Tabla  autores                                          Tabla  Book                                             Tabla  Publisher

Tabla book2

en simple vista podemos darnos cuenta que el autor mas joven es Eli en la tabla autor. con un subselect encontrariamos al autor mas joven si en casa de tener millones de registros y no estar buscando 1 por 1.... 

 

 

a continuacion se usa un max ya que el que tenga el año mas grande sera el mas joven y se usa un select a dentro de otro

 

se quiere resolver la problematica de tener una lista de los libros de los autores mas reconocidos para eso se utilizara la tabla autores y book se utiliza un IN para indicar los registros dentro de la tabla autores.

Autores Reconocidos:

Ahora se busca que todos los registros de los libros de los autores mas reconocidos los insertemos en la tabla book2. para eso solo se agregaria la sentencia INSER INTO a continuacion: 

 

insert into book2
SELECT * FROM book where autor in(select name from autores)

Por ultimo...

a cotinuacion se explicara la sentencia... 
update book2 b set autor= concat (autor,'-',) hasta aqui se modificara la tabla book2 la columna autor sera igual a el autor- y despues Select name from publisher p where p. idpublisher=b.idpublisher  en esta sentencia se selecciona el nombre de la editorial de la tabla publisher donde sea igual el numero de idpublisher de la tabla publisher a la de book.
bottom of page