2010-11-10 19 views
16

Para fines de ilustración, digamos que tengo una base de datos Películas (Título, Director, Costo, Beneficios).Insertar SQL con valores seleccionados y codificados

Ahora me gustaría insertar una nueva fila en la tabla Movies basada en un director que se encuentra en otra tabla y luego valores codificados.

INSERT INTO Movies 
SELECT name 
    FROM Directors 
WHERE name = 'Lucas'; 

Así entiendo seleccione insertos trabajar pero lo que si quiero usar el selectivo, así como pasar valores codificados en duro. Entonces algo teóricamente como este:

INSERT INTO Movies 
VALUES(Star Wars,(SELECT name 
        FROM Directors 
        WHERE name='Lucas'), 50000, 1000000); 

¿Esto es posible?

+0

si tiene que seleccionar el nombre [lucas] de la tabla director, ¿no sería sencillo si usamos lucas directamente en lugar de seleccionarlo de otra tabla? – KoolKabin

+0

@Kool, supuse que era sólo un ejemplo, aunque, para ser honesto, no estoy seguro del comportamiento si los directores _no_ no Lucas (error o inserte las filas). – paxdiablo

+0

@paxdiablo, inserta cero filas – Phil

Respuesta

19
INSERT INTO Movies (Title, Director, Cost, Profits) 
SELECT 'Star Wars', name, 50000, 1000000 
FROM Directors WHERE name = 'Lucas' 
+4

sería aún mejor si incluye los nombres de campo de la tabla de películas también – KoolKabin

+0

@KoolKabin Cierto, pero la pregunta no fue publicada con tales detalles – Phil

+0

tal vez debería mirar más de cerca :-) – paxdiablo

6

Debido a que puede especificar valores codificados en el estado select, es probablemente más limpia de usar:

insert into movies (title, director, cost, profits) 
    select 'Star Wars', name, 50000, 1000000 from directors where name = 'Lucas'; 
4

Sí, esto es posible. User INSERT .. SELECT sintaxis. Ver reference para más detalles. Los valores codificados deben estar en su consulta SELECT en lugar de dentro de los VALORES. P.ej.

INSERT INTO Movies 
SELECT 'Star Wars', name, 50000, 1000000 
FROM Directors 
WHERE name = 'Lucas'; 
0

tiene una base de datos como Películas (Título, Director, Costo, Beneficios). si desea ingresar los valores en las tablas respectivas, primero seleccione la tabla y luego inserte los valores en esas tablas.

Cuestiones relacionadas