relacionar dos tablas.

Post Reply
kpidata
Posts: 73
Joined: Tue Jul 26, 2016 9:52 pm

relacionar dos tablas.

Post by kpidata »

Estimados amigos, como puedo realizar lo siguiente en Mysql.

Así lo hago en DBF, en donde los archivos Vta_Cot1 se relaciona con Tab_Cte, por el campo común entre ellos rut_cte..

Set Relation to Vta_Cot1->Cte_Cot into Tab_Cte

oCol2 := oBrw2:AddCol()
oCol2:bStrData := { || Transform(Vta_Cot1->Nro_Cot,"99-99-999") }
oCol2:cHeader := "Cotizacion"

oCol2 := oBrw2:AddCol()
oCol2:bStrData := { || Tab_Cte->Raz_Cte }
oCol2:cHeader := "Nombre Cliente"
User avatar
wmormar
Posts: 1050
Joined: Fri Oct 07, 2005 10:41 pm
Location: México
Contact:

Re: relacionar dos tablas.

Post by wmormar »

SELECT a.*, b.* FROM vta_cot1 as A INNER JOIN tab_cte AS b ON b.rut_ce = a.rut_ce
William, Morales
Saludos

méxico.sureste
kpidata
Posts: 73
Joined: Tue Jul 26, 2016 9:52 pm

Re: relacionar dos tablas.

Post by kpidata »

Te agradezco la respuesta..

pero la hago mas difícil... si antes debo hacer esto..

cVta_Cot1:=xServer:Query("SELECT * FROM vta_cot1 WHERE nro_cot >='"+Str(cFolio1)+"' and nro_cot<='"+Str(cFolio1)+"' ORDER BY nro_cot")
que era lo que hacia con

Select 90
Set Order to 1
Vta_Cot1->(OrdScope(0, cFolio1 ))
Vta_Cot1->(OrdScope(1, cFolio2 ))
go top

y aca recien realizaba... el set relation...


mis diculpas... estoy recien viendo Mysql.. y aunque he estudiado el tema aun me cuesta visualizarlo... ahh estoy trabajando con tdolphin..

Atte.,
User avatar
wmormar
Posts: 1050
Joined: Fri Oct 07, 2005 10:41 pm
Location: México
Contact:

Re: relacionar dos tablas.

Post by wmormar »

cVta_Cot1:=xServer:Query("SELECT a.*, b.* FROM vta_cot1 AS a INNER JOIN tab_cte AS b ON b.rut_ce = a.rut_ce WHERE a.nro_cot >='"+Str(cFolio1)+"' and a.nro_cot<='"+Str(cFolio1)+"' ORDER BY a.nro_cot")
William, Morales
Saludos

méxico.sureste
kpidata
Posts: 73
Joined: Tue Jul 26, 2016 9:52 pm

Re: relacionar dos tablas.

Post by kpidata »

Te pasaste... amigo gracias...
User avatar
carlos vargas
Posts: 1421
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: relacionar dos tablas.

Post by carlos vargas »

solo algunas consideraciones.

Code: Select all

cVta_Cot1:=xServer:Query("SELECT a.*, b.* FROM vta_cot1 AS a INNER JOIN tab_cte AS b ON b.rut_ce = a.rut_ce WHERE a.nro_cot >='"+Str(cFolio1)+"' and a.nro_cot<='"+Str(cFolio1)+"' ORDER BY a.nro_cot")
en este caso, el indicar que te traeras todos _ de la tabla a, y todos _ de la tabla b en la consulta no es lo mejor, ni lo mas indicado. mas incluso si hay campos del mismo nombre en ambas tablas, por lo que deberas tener el cuidado de realizar el cambio de nombre en la consulta.
lo adecuado es especificar cuales columnas te traeras, y en caso de que existan columnas con nombre iguales en ambas tablas deberas usar " field as fielname", por ejemplo

Code: Select all

cVta_Cot1:=xServer:Query("SELECT a.nro_cot, a.code, a.name, a.age, a.dob, b.code as othername, b.address, b.city, c.state FROM vta_cot1 AS a INNER JOIN tab_cte AS b ON b.rut_ce = a.rut_ce WHERE a.nro_cot >='"+Str(cFolio1)+"' and a.nro_cot<='"+Str(cFolio1)+"' ORDER BY a.nro_cot")
y eso que asumimos que por cada fila de datos en b debe haber una fila de datos en a. por que dbf en algunas ocaciones no es asi. para _ en sql deberas usar outer join, left join, rigth join.

salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: relacionar dos tablas.

Post by joseluisysturiz »

Lo mejor seria usar LEFT JOIN, ya que el INNER seria mas que todo para unirla, te recomiendo que uses algun administrador de base de datos...como NAVICAT, HeidiSQL, phpMyAdmin, etc, con el asistente para hacer tus concultas, asi puedes ver en linea que informacion te saldra del listado y luego simplemente copias tu sentencia a tu codigo, cualquier duda o consulta, por aca andamos, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
Post Reply