none
Update SQL comparando 3 tablas RRS feed

  • Pregunta

  • Hola , 
    Tengo 3 tablas (ProductType  , N1 y N2)
    N1 y N2 tienen los mismos ID.
    Productype tiene idproduct y nameproduct (tiene todos los datos completos)
    N1 tiene nameproduct (dato completo)
    N2 tiene idproduct (dato incompleto)
    Lo que necesitaria , es con una consulta sql es completar los idproduct de N2, cuando los id de n1 y n2 sean iguales y el valor idproduct que esta en la tabla productype.
    Si alguien me puede  ayudar con esta consulta , les agradezco mucho.
    saludos,
    Fran
    jueves, 29 de diciembre de 2011 14:55

Respuestas

  • Hola.

    No aportas las estructuras de las tablas, lo que dificulta poder darte la sentencia exacta. Aún así, para que te sirva de aprendizaje, lo que debes conseguir es obtener la sentencia "select" que dejaría la tabla N2 como la deseas dejar. Pasar de la select al update es trivial. Te pongo un ejemplo:

    select
      idproduct = P.idproduct
    from
      N2 inner join 
      N1 on N1.ID = N2.ID inner join
      ProductType P on N1.nameproduct = P.nameproduct
    
    --> y luego de ahí al update
    
    update N2 set
    --select
      idproduct = P.idproduct
    from
      N2 inner join 
      N1 on N1.ID = N2.ID inner join
      ProductType P on N1.nameproduct = P.nameproduct
    
    

    Inténtalo, si no lo logras por ti mismo, nos pasas la estructura de las tablas y nos dices.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/ Sígueme en twitter en http://twitter.com/qwalgrande

    • Marcado como respuesta franciscobj jueves, 29 de diciembre de 2011 16:04
    jueves, 29 de diciembre de 2011 15:26
    Moderador

Todas las respuestas

  • Hola.

    No aportas las estructuras de las tablas, lo que dificulta poder darte la sentencia exacta. Aún así, para que te sirva de aprendizaje, lo que debes conseguir es obtener la sentencia "select" que dejaría la tabla N2 como la deseas dejar. Pasar de la select al update es trivial. Te pongo un ejemplo:

    select
      idproduct = P.idproduct
    from
      N2 inner join 
      N1 on N1.ID = N2.ID inner join
      ProductType P on N1.nameproduct = P.nameproduct
    
    --> y luego de ahí al update
    
    update N2 set
    --select
      idproduct = P.idproduct
    from
      N2 inner join 
      N1 on N1.ID = N2.ID inner join
      ProductType P on N1.nameproduct = P.nameproduct
    
    

    Inténtalo, si no lo logras por ti mismo, nos pasas la estructura de las tablas y nos dices.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/ Sígueme en twitter en http://twitter.com/qwalgrande

    • Marcado como respuesta franciscobj jueves, 29 de diciembre de 2011 16:04
    jueves, 29 de diciembre de 2011 15:26
    Moderador
  • Muchas Gracias Alberto.

    Funcionó perfecto.

    Saludos.

    jueves, 29 de diciembre de 2011 16:05