MySQL - Consulta entre 2 tablas

   
Vista:

Consulta entre 2 tablas

Publicado por Lrz (12 intervenciones) el 08/03/2017 00:05:49
Hola buen dia,

Casi nunca me he encontrado hacer consulta entre 2 tablas pero esta me resulta algo dificil de comprender, mi problema es el siguiente:

tengo 2 tablas una que se llama "retensiones" y una de "proveedores" , las cuales se componen asi


tpr
tr

Pero quiero hacer llamar los campos (rfc, curp) de proveedores

y (importe , isr , iva , proveedores , concepto) de retensiones

pero el rfc y el curp deben estar ligados con respecto a cada proveedor ( en la lista de retensiones este proveedor puede estar repetido "n" cantidad de veces)

espero alguien me pueda ayudar , de antemano Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip

Consulta entre 2 tablas

Publicado por kip (24 intervenciones) el 08/03/2017 00:29:51
Hola, intentalo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT
    prov.rcf,
    prov.cup,
    ret.importe,
    ret.isr,
    ret.iva,
    ret.proveedores,
    ret.concepto
FROM
    proveedores prov
    INNER JOIN
        retenciones ret
        ON prov.proveedores = ret.proveedores

Coloque como campo de referencia para ligar los datps 'proveedores' ya que veo que aparecen en ambas tablas, pruebalo y nos colocas una imagen de los resultados que te trae.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Consulta entre 2 tablas

Publicado por Lrz (12 intervenciones) el 08/03/2017 01:10:20
Gracias , Antes que nada , Gracias por tu ayuda

si me resulto , al parecer si me trae los campos requeridos pero creo que me trae los campos de ambas tablas

ya que el total de registros de proveedores son al rededor de 300 , y de retensiones 600 , y me manda en total mas de 900

no hay forma de que me muestre unicamente los de retensiones ?

1
SELECT prov.rfc, prov.curp, ret.importe, ret.isr, ret.iva, ret.proveedores, ret.concepto FROM proveedores prov INNER JOIN retensiones ret ON prov.proveedores = ret.proveedores

esto es lo que me da
sql
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip

Consulta entre 2 tablas

Publicado por kip (24 intervenciones) el 08/03/2017 03:03:54
Entiendo, intenta agrupando por el campo proveedores que tienes duplicados en el campo de retenciones:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT
    prov.rcf,
    prov.cup,
    ret.importe,
    ret.isr,
    ret.iva,
    ret.proveedores,
    ret.concepto
FROM
    proveedores prov
    INNER JOIN
        retenciones ret
        ON prov.proveedores = ret.proveedores
GROUP BY
    prov.proveedores, ret.proveedores
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Consulta entre 2 tablas

Publicado por Lrz (12 intervenciones) el 08/03/2017 17:31:26
ahora solo me trae 86 registros , no entiendo muy bien el query , la verdad no estoy acostumbrado a este tipo de llamadas de la base de datos de 2 tablas , y de hecho no comprendo bien o mas bien nunca lo habia visto asi , cuando utilizas prov. y ret. es como abreviar las tablas ? o algo asi , ademas de donde llamas los datos es de la tabla proveedores prov, no tendria que ser de retensiones ? , aun asi lo intente y me salio error , lo que mas quisiera es poder comprenderlo , espero no sea mucha molestia .Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta entre 2 tablas

Publicado por SuperIndio (71 intervenciones) el 22/03/2017 20:13:43
Ahi el query que estas buscando

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT DISTINCT
       P.proveedores ,
       P.rfc         ,
       P.curp        ,
       R.importe     ,
       R.isr         ,
       R.iva         ,
       R.proveedores ,
       R.concepto
  FROM proveedores P,
       retensiones R
 WHERE UPPER( TRIM( P.proveedores ) ) = UPPER( TRIM( R.proveedores ) )
ORDER BY 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta entre 2 tablas

Publicado por SuperIndio (71 intervenciones) el 22/03/2017 22:36:00
Es muy malo el diseño
en la tabla de retensiones
porque no tenes el id_delproveedor en lugar de la proveedores con su varchar(50), sino para que tenes el id_proveedores
falta normalizar ese diseño...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar