Gracias por tu visita y participar en este curso, si te gusta por favor subscríbete, dame tu like y comparte para seguir creciendo y publicando mas lecciones, esto me ayudaría mucho. Tambien para recibir las notificaciones de las nuevas lecciones que iré subiendo paulatinamente CONTACTO: informaticonfig@gmail.com COLABORACION: paypal.me/informaticonfig patreon.com/informaticonfig
Profesor gracias por el video y por el curso, He estado intentado llegar al resultado de la segunda consulta que sería los clientes que no tienen el artículo Lápiz en sus facturas, en donde se usa el query: select cliente, numero, fecha from facturas f where not exists (select * from detalles d where f.numero = d.numerofactura and d.articulo = 'Lápiz'); Intenté llegar al mismo resultado sin usar el not exists, solo usando enlace join, apliqué el siguiente query: select f.cliente,f.numero,f.fecha from facturas f left join detalles d on d.numerofactura = f.numero where f.numero not in (select numerofactura from detalles where articulo = 'Lápiz'); Los nombres y datos de los clientes son los mismos pero hay un inconveniente con el resultado, repite el nombre y datos de los cliente, mientras que usando el not exists te devuelve un registro único de los clientes que no tienen lápiz en la factura. ¿Sabe cómo se podría solucionar este inconveniente? ¿Para poder llegar a ese resultado solo es usando el exists? Pasa que no me quedo muy claro y por eso intenté hacerlo de otra manera. Gracias
Buenas, también podría evitar la repetición de los datos al poner DISTINCT después del primer SELECT, claro, quizás para el tiempo que le respondo esto ya debió saber eso, aun así le aporto por si acaso. Pero como dice el profesor, mejor viene usar el NOT EXIST Y EL EXIST.
(select * from detalles d where f.numero = d.numerofactura and d.articulo = 'lapiz'); me marca el siguiente error: Msg 4104, Level 16, State 1, Line 13 The multi-part identifier "f.numero" could not be bound.
@@saulalonsogilolivar2638 si pero ahí no estás completando la consulta, si le colocas: select clientes, numero, fecha from facturas where exists. Verás el resultado.
Hola profe! estoy iniciándome en python y en un ejercicio me piden sacar el nombre de la persona cuyo DNI =22222222. Tengo ya dos tablas creadas en SQLite3. Las dos tienen en común la columna DNI. En la tabla1 tengo el nombre y apellidos y en la tabla 2 tengo el número de despacho que también me piden. Se debe hacer sin usar JOIN pero no me sale. me dice que es ambiguo. Alguna ayuda?
Gracias por tu visita y participar en este curso, si te gusta por favor subscríbete, dame tu like y comparte
para seguir creciendo y publicando mas lecciones, esto me ayudaría mucho.
Tambien para recibir las notificaciones de las nuevas lecciones que iré subiendo paulatinamente
CONTACTO: informaticonfig@gmail.com
COLABORACION: paypal.me/informaticonfig
patreon.com/informaticonfig
profesor, por que no se uso el INNER JOIN en la sub consulta? y no mas uso el where?
Profesor gracias por el video y por el curso,
He estado intentado llegar al resultado de la segunda consulta que sería los clientes que no tienen el artículo Lápiz en sus facturas, en donde se usa el query:
select cliente, numero, fecha
from facturas f
where not exists
(select * from detalles d
where f.numero = d.numerofactura
and d.articulo = 'Lápiz');
Intenté llegar al mismo resultado sin usar el not exists, solo usando enlace join, apliqué el siguiente query:
select f.cliente,f.numero,f.fecha
from facturas f
left join detalles d on d.numerofactura = f.numero
where f.numero not in (select numerofactura
from detalles
where articulo = 'Lápiz');
Los nombres y datos de los clientes son los mismos pero hay un inconveniente con el resultado, repite el nombre y datos de los cliente, mientras que usando el not exists te devuelve un registro único de los clientes que no tienen lápiz en la factura. ¿Sabe cómo se podría solucionar este inconveniente? ¿Para poder llegar a ese resultado solo es usando el exists? Pasa que no me quedo muy claro y por eso intenté hacerlo de otra manera. Gracias
te repite el nombre por que con el join va a venir todo lo que coincida en el campo del enlace, con el not exists haces el filtro mas especificamente.
Buenas, también podría evitar la repetición de los datos al poner DISTINCT después del primer SELECT, claro, quizás para el tiempo que le respondo esto ya debió saber eso, aun así le aporto por si acaso. Pero como dice el profesor, mejor viene usar el NOT EXIST Y EL EXIST.
(select * from detalles d
where f.numero = d.numerofactura
and d.articulo = 'lapiz');
me marca el siguiente error: Msg 4104, Level 16, State 1, Line 13
The multi-part identifier "f.numero" could not be bound.
hola Salul,
tu consulta está utilizando un alias (f) para la tabla que no ha sido definida, solo definiste la "d"
@@informaticonfig333 la subconsulta la estoy haciendo siguiendo los mismos pasos del video, reviso y reviso y me da el mismo error
@@saulalonsogilolivar2638 si pero ahí no estás completando la consulta, si le colocas:
select clientes, numero, fecha from facturas where exists.
Verás el resultado.
No comprendo el flujo lógico de la consulta
haces la subconsulta primero y el resultado lo pones como valor a buscar en la consulta principal, entendiste?
@@informaticonfig333 Si señor, hice una prueba de escritorio para entender el "algoritmo". Muchas gracias profesor
Hola, buenas Podria funcionar un inner join ahi tambien?
Gracias
lo intentaste probar?
El EXISTS Solo se puede usar para enlazar solo 2 tablas?
te funciona para cuantas tablas quieras siempre y cuando establezcas el join
@@informaticonfig333 profe , disculpas como sería la estructura ?
Excelente!!!
gracia profe
8:13 ¿No serviria tambien un *d.articulo != 'Lapiz');* ?
si haces eso la consulta no traerá ninguna campo con el articulo Lapiz.
Profesor , por que no se aplico un Inner join en la sub consulta? y se uso no mas el where?
por que estamos explorando toda la capacidad del lenguaje .
@@informaticonfig333 se podia poner? o simplemente podemos hacerlo asi tambien?
@@informaticonfig333 la subconsulta no muestra ningun resultado por si sola. es la parte que no entiendo
@@nestormoreira1191 hiciste una prueba?
@@informaticonfig333 si , la subconsulta da error por que no reconoce f.numero
Hola profe! estoy iniciándome en python y en un ejercicio me piden sacar el nombre de la persona cuyo DNI =22222222. Tengo ya dos tablas creadas en SQLite3. Las dos tienen en común la columna DNI. En la tabla1 tengo el nombre y apellidos y en la tabla 2 tengo el número de despacho que también me piden. Se debe hacer sin usar JOIN pero no me sale. me dice que es ambiguo. Alguna ayuda?
hola Manuel, mandame tu consulta a informaticonfig@gmail.com