Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: saroan en 18 de Mayo 2016, 00:06
-
(http://115.imagebam.com/download/oUN_SjUWrW5zJHG5RH2X4Q/48425/484242649/dise%C3%83%C2%B1ocientificostema9.jpg)
Teniendo este diseño se me plantean una serie de ejercicios los cuales iré mostrando para recibir ayuda , si es posible gracias
He probado con multitabla y subconsulta y no logro encontrar la solución correcta
1. El director del proyecto 'Células madres' quiere saber los nombres de los
científicos que están trabajando en él. 'celulas'.
create view or replace dire_proyect as
select id from proyectos,asignado_a,cientificos
where asignado_a.proyecto = proyectos.id and asignado_a.cientifico
= cientificos.dni;
create view or replace dire_proyect as
select nombre from proyectos where id in
(select proyecto from asignado_a where cientifico in )
create view dire_proyect as
select nombre from cientificos where dni in
(select cientifico from asignado_a where proyecto in
(select id from proyectos where nombre like 'Celulas madre');
Me da un error de sintaxis en la linea 4 y no logro hallar el error , sé que vista multitabla y la segunda vista con subconsulta están fatal , pero de tantas modificaciones que he hecho y no me ha salido lo que quería , he desistido , si alguien me puede explicar en que fallo se lo agradezco
-
En la línea dos, pone asignado_a,cientifico es un . No una coma
-
Eso que comentas hace referencia a las tablas ;) , sí indicas a cual te refieres mejor , ya que como indico la primera vista multitabla y subconsulta ambas son diferentes, las he modificado varias veces y no funcionan , no sé si la segunda vista con subconsulta es la buena o sigo perdido es donde más he usado nuestra amiga lógica .
-
Hola!
Prueba primero una consulta directa y verifica si obtienes resultados, por ejemplo algo como
SELECT a.`nombre`
FROM `cientificos` AS a
JOIN `asignado_a` AS b ON a.`dni` = b.`cientifico`
JOIN `proyectos` AS c ON b.`proyecto` = c.`id`
ORDER BY a.`nombre` DESC
Luego si quieres vete descomponiendo la consulta en vistas
Saludos!
-
Gracias , pero ya esta solucionado por subconsulta lo veo mas sencillo , que todo eso que indicas :) tenía algún fallo de sintaxis ya solucionado
-
¿Puedes poner el código con el que lo has solucionado? Eso puede ayudar a otras personas
Saludos!
-
8) claro
CREATE OR REPLACE VIEW dire_proyect AS
SELECT nombre FROM cientificos WHERE dni IN
(SELECT cientifico FROM asignado_a WHERE proyecto not IN
(SELECT id FROM proyectos WHERE nombre = 'Celulas madre'));
-
prosigo con dudas
4. ¿En qué proyecto ha ganado más dinero 'Mara Reina'?, ¿cuánto ha ganado?. Crea la vista 'mara'
para ver lo que ha ganado Mara en cada proyecto, después usa esa vista para crear otra vista y
resolver la consulta. 'maxmara'.
create or replace view mara
select count(asignado_a.proyecto)* horas* 120 ,proyectos.nombre
from proyectos,asignado_a,cientificos
where asignado_a.cientifico = cientificos.dni
and asignado_a.proyecto = proyectos.id
group by proyectos.id;Lo de crear una vista a partir de otra , no tengo ni idea , puede sea con select * from mara ...
-
Hola!
Sí, yo pienso que crear una vista a partir de otra es utilizar una vista creada como si se tratara de una tabla y realizar la consulta sobre la vista creada previamente
Saludos!
-
Vale , gracias
Y en el ejercicio que planteo tu el código lo ves correcto ? Tu harías lo mismo ?
-
Perdona por no haber respondido antes, se me pasó el mensaje y ahora revisando me he encontrado que no lo había respondido, lo siento.
-
(http://115.imagebam.com/download/YPvESpAhs_63Z_ND9faN0Q/48730/487296680/dise%C3%83%C2%B1ovuelta.jpg)
Tengo que crear esta bd , pero nada mas empezar , ya empiezan los errores ...
create or replace table caminos
(
nombre varchar(30),
km dec(4,1),
primary key (nombre),
constraint fk_camino foreign key (nombre) references
recorridos (nombre),
constraint fk_caminos foreign key (nombre) references
etapas (nombre)
);
ERROR 1005 (HY000): Can't create table `repaso`.`caminos` (errno: 150 "Foreign key constraint is incorrectly formed")
MariaDB [repaso]>
He probado cambiando el nombre de fk_ con varias combinaciones y posiciones y no hay manera