none
Como Unir Tres Tablas Usando INNER JOIN RRS feed

  • Pregunta

  • Hola!! quisiera que alguien me pudiera dar un ejemplo de como unir 3 tablas(tabla1,tabla2,tabla3), para que despues pueda recuperar los datos mediante un DataReader. Aguien tiene alguna idea?
    • Cambiado Enrique M. Montejo martes, 17 de octubre de 2017 14:36 Pregunta relacionada con el acceso a datos.
    jueves, 31 de enero de 2013 2:14

Respuestas

  • podria ser

    Using conexion As New SqlConnection(cadenaconexion)
    	conexion.Open()
    	
    	Dim query As String = "SEELCT T1.Campo, T1.Campo2, T2.Campo1 As T2Campo1, T3.Campo1 As T1Campo1 " & _
    							"FROM Tabla1 T1 INNER JOIN Tabla2 T2 ON T1.Campo = T2.Campo " & _
    							"INNER JOIN Tabla3 T3ON T1.Campo = T2.Campo"
    							
    	Dim comando As New SqlCommand(query, conexion)
    	Dim reader As SqlDataReader = comando.ExecuteReader()
    
    	If reader.Read() Then
    	
    		'aqui cargas la lista
    
    	End If
    
    End Using

    para cargar la lsita lo explico aqui

    [WinForms] Edición Empleados

    analzia la capa de datos

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Propuesto como respuesta s0c25 martes, 10 de octubre de 2017 19:33
    • Marcado como respuesta Enrique M. Montejo martes, 17 de octubre de 2017 14:34
    jueves, 31 de enero de 2013 2:40
  • Hola:
    Prueba con esto

    SELECT p.nombre, p.X, p.largo, p.mes, e.X, e.FECHA, f.X, f.FECHA FROM (Panel p INNER Join Lbini e ON p.nombre = e.nombre) INNER Join Lbfin f ON p.nombre = f.nombre

    Un saludo desde Bilbo
    Carlos

    miércoles, 11 de octubre de 2017 20:26
  • Hola

    Esta es una consulta en la que estan implicadas 5 tablas de la base de datos Northwind

    SELECT Products.ProductName, [Order Details].ProductID, [Order Details].UnitPrice, [Order Details].Quantity, Orders.OrderID,
    Orders.OrderDate, Customers.CustomerID, Customers.CompanyName, Customers.City, Customers.Country, Employees.EmployeeID, Employees.LastName
    FROM (((Employees
    INNER JOIN Orders ON Employees.EmployeeID=Orders.EmployeeID)
    INNER JOIN Customers ON Customers.CustomerID=Orders.CustomerID)
    INNER JOIN [Order Details] ON Orders.OrderID=[Order Details].OrderID)
    INNER JOIN Products ON [Order Details].ProductID=Products.ProductID

    Un saludo desde Bilbo
    Carlos
    • Propuesto como respuesta s0c25 jueves, 12 de octubre de 2017 15:58
    • Marcado como respuesta Enrique M. Montejo martes, 17 de octubre de 2017 14:35
    jueves, 12 de octubre de 2017 8:25

Todas las respuestas

  • podria ser

    Using conexion As New SqlConnection(cadenaconexion)
    	conexion.Open()
    	
    	Dim query As String = "SEELCT T1.Campo, T1.Campo2, T2.Campo1 As T2Campo1, T3.Campo1 As T1Campo1 " & _
    							"FROM Tabla1 T1 INNER JOIN Tabla2 T2 ON T1.Campo = T2.Campo " & _
    							"INNER JOIN Tabla3 T3ON T1.Campo = T2.Campo"
    							
    	Dim comando As New SqlCommand(query, conexion)
    	Dim reader As SqlDataReader = comando.ExecuteReader()
    
    	If reader.Read() Then
    	
    		'aqui cargas la lista
    
    	End If
    
    End Using

    para cargar la lsita lo explico aqui

    [WinForms] Edición Empleados

    analzia la capa de datos

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Propuesto como respuesta s0c25 martes, 10 de octubre de 2017 19:33
    • Marcado como respuesta Enrique M. Montejo martes, 17 de octubre de 2017 14:34
    jueves, 31 de enero de 2013 2:40
  • Hola Leandro, tengo una consulta uso esa sintaxis para hacer varios inner join y me dice error de sintaxis, que falta operador. ve el error.

    Asi me marca ese error

    "SELECT p.nombre, p.X, p.largo, p.mes, e.X, e.FECHA, f.X, f.FECHA" _
                   & " FROM Panel p" _
       & " INNER Join Lbini e ON p.nombre = e.nombre" _
       & " INNER Join Lbfini f ON p.nombre = f.nombre"

    Asi si me funciona, pero necesito hacer varios inner join

     "SELECT p.nombre, p.X, p.largo, p.mes, e.X, e.FECHA" _
                   & " FROM Panel p" _
       & " INNER Join Lbini e ON p.nombre = e.nombre"

    Saludos, espero me puedas ayudar a solucionar el problema

    miércoles, 11 de octubre de 2017 16:11
  • "SELECT p.nombre, p.X, p.largo, p.mes, e.X, e.FECHA, f.X, f.FECHA" _ & " FROM Panel p" _ & " INNER Join Lbini e ON p.nombre = e.nombre" _ & " INNER Join Lbfini f ON p.nombre = f.nombre"


    A simple vista esta bien pero verifica esos datos


    Si necesitas ayuda sube tu avance de otro modo no puedo ayudarte , Suerte!

    miércoles, 11 de octubre de 2017 16:44
  • Revice eso y esta bien escrito, estoy usando VB.net IDE visual studio 2015, y ACCESS.

    Existe alguna forma de verificar esa consulta, porque los campos estan bien escrito, claro es necesario señalar qe mi relacion es asi

    Por ahora la tengo asi de desordenada,

    miércoles, 11 de octubre de 2017 18:04
  • Si te das cuenta es Lbfin no Lbfini


    Si necesitas ayuda sube tu avance de otro modo no puedo ayudarte , Suerte!

    miércoles, 11 de octubre de 2017 18:59
  • Si ya lo cambie, pero aun asi me marca el mismo error
    miércoles, 11 de octubre de 2017 19:22
  • Hola:
    Prueba con esto

    SELECT p.nombre, p.X, p.largo, p.mes, e.X, e.FECHA, f.X, f.FECHA FROM (Panel p INNER Join Lbini e ON p.nombre = e.nombre) INNER Join Lbfin f ON p.nombre = f.nombre

    Un saludo desde Bilbo
    Carlos

    miércoles, 11 de octubre de 2017 20:26
  • :D funciono, pero ahora necesito poner 3 tablas mas y me marca el error de antes -__-
    miércoles, 11 de octubre de 2017 20:52
  • Hola

    Esta es una consulta en la que estan implicadas 5 tablas de la base de datos Northwind

    SELECT Products.ProductName, [Order Details].ProductID, [Order Details].UnitPrice, [Order Details].Quantity, Orders.OrderID,
    Orders.OrderDate, Customers.CustomerID, Customers.CompanyName, Customers.City, Customers.Country, Employees.EmployeeID, Employees.LastName
    FROM (((Employees
    INNER JOIN Orders ON Employees.EmployeeID=Orders.EmployeeID)
    INNER JOIN Customers ON Customers.CustomerID=Orders.CustomerID)
    INNER JOIN [Order Details] ON Orders.OrderID=[Order Details].OrderID)
    INNER JOIN Products ON [Order Details].ProductID=Products.ProductID

    Un saludo desde Bilbo
    Carlos
    • Propuesto como respuesta s0c25 jueves, 12 de octubre de 2017 15:58
    • Marcado como respuesta Enrique M. Montejo martes, 17 de octubre de 2017 14:35
    jueves, 12 de octubre de 2017 8:25
  • Hey gracias tu respuesta me ayudo a solucionar mi problema, pero tengo una duda porque muchos en el foro no le colocan paréntesis y así les funciona y en mi caso no funciono(A los INNER JOIN, por lo que veo cada ves que quiera poner otro inner join tendría que adjuntarle a los paréntesis ), Saludos y te agradezco por responder mi duda.
    jueves, 12 de octubre de 2017 16:00
  • Hey gracias tu respuesta me ayudo a solucionar mi problema, pero tengo una duda porque muchos en el foro no le colocan paréntesis y así les funciona y en mi caso no funciono(A los INNER JOIN, por lo que veo cada ves que quiera poner otro inner join tendría que adjuntarle a los paréntesis ), Saludos y te agradezco por responder mi duda.
    Es que es SQL server creo que en caso de Access difiere en ese sentido

    Si necesitas ayuda sube tu avance de otro modo no puedo ayudarte , Suerte!

    jueves, 12 de octubre de 2017 17:51
  • Hola:
    Porque cada motor de base de datos usan "diferentes" lenguajes de SQL

    Un saludo desde Bilbo
    Carlos
    viernes, 13 de octubre de 2017 4:58