Foros del Web » Programando para Internet » PHP »

SELECT a 2 tablas con campos llamados igual

Estas en el tema de SELECT a 2 tablas con campos llamados igual en el foro de PHP en Foros del Web. Hola, que tal? Espero que me puedan ayudar con una duda que tengo, quiero hacer un SELECT con dos tablas que tienen un campo llamado ...
  #1 (permalink)  
Antiguo 20/04/2009, 14:08
Avatar de berper  
Fecha de Ingreso: abril-2009
Ubicación: Mexico
Mensajes: 74
Antigüedad: 15 años
Puntos: 2
Información SELECT a 2 tablas con campos llamados igual

Hola, que tal?

Espero que me puedan ayudar con una duda que tengo, quiero hacer un SELECT con dos tablas que tienen un campo llamado de igual forma en ambas tablas, yo supongo que el codigo seria algo asi:

Código PHP:
<?php
include('configuracion.php');
$conexion mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname,$conexion);
$consulta "SELECT * FROM tabla1, tabla2 WHERE tabla1.id = tabla2.id";
$resultado mysql_query($consulta);
while (
$row mysql_fetch_array($resultado))
{echo 
'Contenido 1: '.$row['tabla1.contenido'].'<br>Contenido 2: '.$row['tabla2.contenido'];}
mysql_free_result($resultado);
mysql_close($conexion);
?>
Pero no funciona, cual seria la forma correcta?

Saludos.

Última edición por berper; 20/04/2009 a las 15:11
  #2 (permalink)  
Antiguo 20/04/2009, 14:15
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: SELECT a 2 tablas con campos llamados igual

esto es un tema a medias entre PHP y MySQL, pero te responderé que debes usar ALIAS
SELECT tabla1.contenido contenido1, tabla2.contenido contenido2 FROM tabla1 INNER JOIN tabla2 ON tabla1.id = tabla2.id

te he puesto la consulta con un cruce INNER JOIN. No es recomendable que uses SELECT * salvo que vayas a usar todos los campos de las dos tablas.

Los alias contenido1 y contenido2 funcionarán como nombres de campo.
  #3 (permalink)  
Antiguo 20/04/2009, 14:48
Avatar de berper  
Fecha de Ingreso: abril-2009
Ubicación: Mexico
Mensajes: 74
Antigüedad: 15 años
Puntos: 2
Respuesta: SELECT a 2 tablas con campos llamados igual

Gracias por la respuesta y rapidez, funciona perfectamente, pero como le haria si quisiera obtener todos los campos de una tabla, pero de la otra solo 2 campos?:

Tabla 1:
id
Contenido
Campo 3
Campo 4
Campo 5
Campo 6
Campo 7
Campo 8

Tabla 2:
id
Contenido
Campo 3
Campo 4
Campo 5
Campo 6
Campo 7
Campo 8

Tendria que especificar todos los campos que voy a usar? (en vez de un SELECT *)

Saludos.
  #4 (permalink)  
Antiguo 20/04/2009, 14:52
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: SELECT a 2 tablas con campos llamados igual

Estos te debe funcionar.

Código mysql:
Ver original
  1. select tabla1.*, tabla2.campo3  FROM tabla1
  2. INNER JOIN tabla2 ON tabla1.id = tabla2.id

Con tabla.* seleccionas todos los campos de dicha tabla.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 20/04/2009, 15:07
Avatar de berper  
Fecha de Ingreso: abril-2009
Ubicación: Mexico
Mensajes: 74
Antigüedad: 15 años
Puntos: 2
Respuesta: SELECT a 2 tablas con campos llamados igual

Muchas gracias a los dos por su ayuda, ya esta solucionada mi duda.

El codigo me quedo asi:

Código PHP:
<?php
include('configuracion.php');
$conexion mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname,$conexion);
$consulta "SELECT tabla1.*, tabla1.contenido contenido1, tabla2.contenido contenido2 FROM tabla1 INNER JOIN tabla2 ON tabla1.id = tabla2.id";
$resultado mysql_query($consulta);
while (
$row mysql_fetch_array($resultado))
{echo 
'Contenido 1: '.$row['contenido1'].'<br>Contenido 2: '.$row['contenido2'];}
mysql_free_result($resultado);
mysql_close($conexion);
?>
Saludos.
  #6 (permalink)  
Antiguo 21/04/2009, 14:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: SELECT a 2 tablas con campos llamados igual

Tema trasladado desde MySQL

http://www.forosdelweb.com/f21/funci...-datos-413499/
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:17.