CONSULTA DE 2 TABLAS SIMULTANEAMENTE??

Franlibert
06 de Agosto del 2004
Hola amigo, necesito un gran favor ya que estoy realizando una consulta sql y tengo problemas con mi instruccion.
Tengo dos tablas la cuales estan elaboradas en acces. La Tabla1 posee los siguientes campos: [cedula1],[nacionalidad],[apellidos_nombres],[centro_votacion] y la Tabla2 posee los mismos campos, lo que varia es que en la nacionalidad de la tabla1 todas van a ser "v" y la de tabla2 "e" (claro los registros son diferentes pero en el campo cedula1 si hay valores de algunos campos que son iguales a los de la tabla1). El asunto esta que actualmente tengo la siguiente consulta:

SQL = "select cedula1, nacionalidad, apellidos_nombres, centro_votacion from electores where centro_votacion = " & TXTcod_centro.Text & ""

Pero en esa me esta tomando nada mas los datos que se encuentran en la tabla electores y necesito que me tome tambien los mismos campos pero que estan en la tabla extran, por lo que lo intente hacer de esta manera:

SQL = "select cedula1, nacionalidad, apellidos_nombres, centro_votacion from [electores],[extran] where centro_votacion = " & TXTcod_centro.Text & ""

Pero no obtengo los resultados deseados, necesito que me consiga tal cual toda la informacion que contenga las dos tablas pero en una misma consulta ya que esa informacion posteriormente la muestro en un msflexgrid. La opcion que tuve fue hacerlo separado, primero una consulta con la primera tabla y despues otra con la segunda tabla pero no lo requiero asi sino las dos simultaneamente.. Agradezco de tu ayuda para ver como puede ser la instruccion mas adecuada para este caso.. Gracias

Nabucodonosor
06 de Agosto del 2004
Hola, lo primero q deberias hacer es leer bastante sobre SQL, buscate algun manual Online.

select cedula1, nacionalidad, apellidos_nombres, centro_votacion from [electores],[extran] where centro_votacion = " & TXTcod_centro.Text &
Lo q tienes q hacer s lo siguiente
select electores.cedula1, electores.nacionalidad, electores.apellidos_nombres, electores.centro_votacion, extran.cedula1, extran.nacionalidad, extran.apellidos_nombres, extran.centro_votacion from electores,extran where electores.centro_votacion = " & TXTcod_centro.Text &"'

O sea tienes q llamar a los campos q necesites, pero con el punto (.) de la tabla a la que pertenece, y lo mismo luego del WHERE

Espero te siva

SLDS

Franlibert
06 de Agosto del 2004
Si yo realize eso pero el problema es que me muestra en el Msflexgrid las otras columnas de la segunda tabla y la idea es que como son los mismos campos me coloque todas las cedula en un mismo campo asi como los otros.???

Gustavo
06 de Agosto del 2004
Tenés que hacer una union

"SELECT * FROM electores WHERE centro_votacion = " & TXTcod_centro.Text & " UNION SELECT * FROM extran WHERE centro_votacion = " & TXTcod_centro.Text


krizall
06 de Agosto del 2004
la consulta quedaria asi:

SQL = "select tabla1.cedula1, tabla1.nacionalidad, tabla1.apellidos_nombres, tabla1.centro_votacion from [electores] inner join [extran] on tabla1.campo1=tabla2.campo1 where tabla1.centro_votacion = " & TXTcod_centro.Text & ""

donde
tabla1.campo1 es el campo comun con tabla2.campo1

pro ejemplo tabla1.id_nombre=tabla2.id_nombre

con este campo se relacionan ambas tablas


ahroa si quieres seleccionar campos de la tabla dos
solo pon antes del inner join

tabla2.nombre_campo a seleccionar

espero te sirva