utlizacion del simbolo ~

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • sirjonan
    Junior Member
    • abr
    • 24

    #1

    utlizacion del simbolo ~

    Hola a todos, tengo dudas sobre cuando se utiliza el simbolo ~.
    Lo veo siempre en ejemplos que poneis al hacer inner join tanto en el select como en la parte del on tabla1~campo1 = tabla2~campo1, pero solo ocurre en inner join o en mas casos???

    Gracias.
  • Ripper87
    Member
    • dic
    • 37

    #2
    Se pueden usar siempre que quieras, pero la verdad solo son necesarios cuando haces consultas con multiples tablas que tengan campos en común, ya sea con INNER JOIN, LEFT JOIN, RIGHT JOIN, subconsultas con EXISTS, IN, consultas anidadas con SELECT - ENDSELECT etc...

    Por ejemplo si estas haciendo un INNER JOIN entre la bkpf y bsis, estas dos tablas tienen varios campos en común (bukrs, gjahr, belnr, etc...) entonces se usa el "~" para diferenciar a que tabla te estas refiriendo.

    Igual cuando se asocia un "alias" a una tabla. Por ejemplo:

    SELECT * INTO lt_tabla
    FROM bkpf AS a INNER JOIN bsis AS b
    ON a~bukrs EQ b~bukrs
    WHERE a~ebeln EQ '123456'.

    (la consulta no tiene sentido práctico, pero a manera de ejemplo...)

    Si no colocaras el "a~" en la condición del WHERE, el compilador no sabría si te refieres al campo ebeln de la bkpf o de la bsis.
    Editado por última vez por Ripper87; 27/05/2014, 18:06:13.

    Comentario

    • sirjonan
      Junior Member
      • abr
      • 24

      #3
      Originalmente publicado por Ripper87
      Se pueden usar siempre que quieras, pero la verdad solo son necesarios cuando haces consultas con multiples tablas que tengan campos en común, ya sea con INNER JOIN, LEFT JOIN, RIGHT JOIN, subconsultas con EXISTS, IN, consultas anidadas con SELECT - ENDSELECT etc...

      Por ejemplo si estas haciendo un INNER JOIN entre la bkpf y bsis, estas dos tablas tienen varios campos en común (bukrs, gjahr, belnr, etc...) entonces se usa el "~" para diferenciar a que tabla te estas refiriendo.

      Igual cuando se asocia un "alias" a una tabla. Por ejemplo:

      SELECT * INTO lt_tabla
      FROM bkpf AS a INNER JOIN bsis AS b
      ON a~bukrs EQ b~bukrs
      WHERE a~ebeln EQ '123456'.

      (la consulta no tiene sentido práctico, pero a manera de ejemplo...)

      Si no colocaras el "a~" en la condición del WHERE, el compilador no sabría si te refieres al campo ebeln de la bkpf o de la bsis.

      okey, muchas gracias.

      Comentario

      Trabajando...