MySQL - Sentencia SQL tablas relacionadas

 
Vista:

Sentencia SQL tablas relacionadas

Publicado por Code Begginer (3 intervenciones) el 04/07/2017 15:38:22
En la aplicación el usuario rellena un formulario con su nombre correo y modelo del coche. Tal y como lo tengo planteado al evitar el formulario se ejecuta la siguiente sentencia:

Insert INTO usuarios (nombre, correo) VALUES (dato_introducido,dato_introducido)

Esta query funciona perfectamente pero quiero que también se agregue a la tabla coche con la relación. Supongo que lo que quiero será algo así

Insert INTO coches (marca, id_usuarios) VALUES (dato_introducido, SELECT id FROM Usuarios WHERE correo = dato introducido)

Un saludo y muchas gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 117
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Sentencia SQL tablas relacionadas

Publicado por Nicolas (46 intervenciones) el 04/07/2017 15:58:50
Hola CodeBegginer.
Te recomendaría que generes 2 INSERT INTO o sino un TRIGGER en la tabla que te sirva para que se agregue el registro automáticamente.
Espero que te sirva de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Sentencia SQL tablas relacionadas

Publicado por Code Begginer (3 intervenciones) el 04/07/2017 16:04:32
Gracias Nicolas,

Eso había pensado, pero no se muy bien como hacer la segunda query

La primera es

Insert INTO usuarios (nombre, correo) VALUES (dato_introducido,dato_introducido)

y en la segunda se debería insertar en la tabla coches el modelo del coche y el id del usuario asociado (que se obtiene de una query como esta SELECT id FROM Usuarios WHERE correo = dato introducido)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 117
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Sentencia SQL tablas relacionadas

Publicado por Nicolas (46 intervenciones) el 04/07/2017 16:25:54
Pero no se en que lenguaje estas programando pero puedes almacenar el valor de la consulta del SELECT en una variable y luego puedes realizar el INSERT INTO en la otra tabla.

Nunca realice un INSERT INTO con una subconsulta dentro de los VALUES.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Sentencia SQL tablas relacionadas

Publicado por Code Begginer (3 intervenciones) el 06/07/2017 11:24:39
Hola nuevamente,

He realizado esta consulta INSERT INTO coche ( marca,modelo,kilometros,usuario_id) VALUES( "asd","asd",123,(SELECT id_usuario FROM usuario WHERE email = "email")) y funciona perfectamente en la consola de mysql, pero cuando lo llevo a php para ejecutarlo desde el servidor no es capaz de ejecutarla, sabrías porque? El código no suelta ningún error pero no hace nada. Las palabras clave de la consulta dentro del valué no las reconoce, creo que puede ir por ahí la cosa.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$comando = "INSERT INTO coche ( " .
            "marca,".
            " modelo,".
            " kilometros,".
            " usuario_id)".
            " VALUES( ?,?,?,(SELECT id_usuario FROM usuario WHERE email = ?))";
 
 
            $sentencia = Database::getInstance()->getDb()->prepare($comando);
 
            return $sentencia->execute(
                array(
                    $$marca,
                    $modelo,
                    $kilometros,
                    $email)
 
            );
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 117
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Sentencia SQL tablas relacionadas

Publicado por Nicolas (46 intervenciones) el 06/07/2017 12:51:10
En la consulta desde la línea de mysql los valores varchar, date y algún otro tipo más llevan comillas simples y en tu consulta desde php no veo una concatenación con esos caracteres. Los valores numéricos no es necesario usar comillas.
No entiendo mucho de php, pero quizás venga por ese lado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar