Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Cruzar 3 tablas con inner join

Estas en el tema de Cruzar 3 tablas con inner join en el foro de Visual Basic clásico en Foros del Web. Buenos Tardes Amigo estoy realizando un programa en visual basic, para un programa de inventarios, al guardar un pedido como se debe hacer guardo solo ...
  #1 (permalink)  
Antiguo 12/12/2011, 12:09
 
Fecha de Ingreso: abril-2011
Mensajes: 6
Antigüedad: 12 años, 11 meses
Puntos: 0
Cruzar 3 tablas con inner join

Buenos Tardes Amigo

estoy realizando un programa en visual basic, para un programa de inventarios, al guardar un pedido como se debe hacer guardo solo los id de los materiales y los id de los funcionarios, las tablas que quiero cruzar para mostrarlas en un listview son:

pedidos(id_pedido,id_funcionario,id_mat1,cant1,id_mat2,ca nt2,id_mat3,cant3,id_mat4,cant4

,id_mat5,cant5,responsable,fecha,hora)

funcionario
(id_funcionario,nombres,apellidos,cedula)

material(id_material,nombre)

quisiera capturar los datos del pedido mediante una consulta sql y mostrarlos en el listview:

id_pedido/funcionario/material1/cantidad1/.../material5/cantidad5/responsable/fecha/hora

pero me enredo y solo me muestra los ids de los productos y los funcionarios, tengo entendido que con inner join se hace pero no tengo idea ya que soy algo novato en esto para realizar el cruze y en los productos 1,2,3,4,5 me muestre los nombres y no los id,s al igual que con los funcionarios
  #2 (permalink)  
Antiguo 13/12/2011, 07:03
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 5 meses
Puntos: 13
Respuesta: Cruzar 3 tablas con inner join

Hola

La sentencia SQl para unir tres tablas o X tablas relacionadas sería la siguiente:

Código:
SELECT campos FROM tb1 INNER JOIN (tb2 INNER JOIN [( ]tb3

[INNER JOIN [( ]tablax [INNER JOIN ...)]

ON tb3.campo3 comp tbx.campox)]

ON tb2.campo2 comp tb3.campo3)

ON tb1.campo1 comp tb2.campo2
De todas formas y si te parece un poco lioso, siempre puedes realizar la consulta en ACCESS en "vista diseño" (es más sencilla y visual) y cuando ya la tengas mostrar la "vista SQL" que te mostrará la sentencia SQL (*Recuerda definir las relaciones entre tablas).

P.D.: No conozco lo que estas haciendo, pero no se si tienes las tablas bien estructuradas, yo creo que de la tabla pedidos sacaría otra tabla [pedido-material] con el id_pedido, id_mat y cantidad. De la forma que lo estas haciendo limitas cada pedido a 5 items (si quieres realizar un pedido con 10 items?)

P.D.: Te paso un enlace con un tuto del SQL muy sencillo y completo: http://www.mailxmail.com/curso-sql
  #3 (permalink)  
Antiguo 14/12/2011, 20:56
 
Fecha de Ingreso: abril-2011
Mensajes: 6
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Cruzar 3 tablas con inner join

buenas noches amigo

muy excelentes recomendaciones por acces saque la consulta y es unm querry larguisimo y al ejecutarlo hace la consulta pero me da muchos problemas queria pedirte acerca de la ultima sugerencia de no limitar los pedidos a 5 y hacer una tabla mas de pedidos-materiales

Agradezco tu ayuda
  #4 (permalink)  
Antiguo 15/12/2011, 10:55
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 5 meses
Puntos: 13
Respuesta: Cruzar 3 tablas con inner join

Hola

Lo de la estructura de las tablas me refería a algo como lo siguiente:

http://imageshack.us/photo/my-images/703/tablasr.jpg/

De esta forma puedes crear pedidos con 1, 2, 3, .... n items. Las consultas se complican un poco más, pero la bd es más lógica y eficiente.

--Saludos--

Etiquetas: basic, join, sql, tabla, tablas, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:47.