Foros del Web » Programando para Internet » PHP »

Consulta tablas dobles y campos dublicados

Estas en el tema de Consulta tablas dobles y campos dublicados en el foro de PHP en Foros del Web. Hola a todos hoy tengo una gran duda como puede hacer una consulta de una tablas combinadas con campos iguales.. este es mi codigo Código ...
  #1 (permalink)  
Antiguo 08/06/2015, 00:11
 
Fecha de Ingreso: abril-2014
Mensajes: 51
Antigüedad: 10 años
Puntos: 1
Pregunta Consulta tablas dobles y campos dublicados

Hola a todos hoy tengo una gran duda como puede hacer una consulta de una tablas combinadas con campos iguales.. este es mi codigo

Código PHP:

$res
=mysql_query("SELECT cotizacion.*, ot.* FROM cotizacion, ot 
WHERE 
cotizacion.id = ot.cotizacion AND
ot.elaborado = '$nombre' AND
ORDER BY ot.no DESC
"
,$con); 

y este es la consulta
Código PHP:

while($fila=mysql_fetch_array($res)){
echo 
$fila['id'];
echo 
$fila['no'];

tabla OT
no
elaborado
subT

tabla cotizacion
id
subT

como pueden ver subT se repite en ambas tablas y no se me es posible cambiar el nombre del campo(seria los mas "facil") por detalles mas complicados y que si me gustaría saber como resolver este detalle
  #2 (permalink)  
Antiguo 08/06/2015, 01:40
 
Fecha de Ingreso: septiembre-2014
Mensajes: 180
Antigüedad: 9 años, 7 meses
Puntos: 14
Respuesta: Consulta tablas dobles y campos dublicados

Supongo que será para luego recuperar el campo con PHP. No hay ningún problema porque tengas campos con el mismo nombre, una posibilidad es darles un nombre en el select de la consulta:

Código PHP:
Ver original
  1. $res=mysql_query("SELECT cotizacion.id, cotizacion.subT as subTCotizacion, ot.no,ot.elaborado,ot.subT as subTOT FROM cotizacion, ot  
  2. WHERE  
  3. cotizacion.id = ot.cotizacion AND
  4. ot.elaborado = '$nombre' AND
  5. ORDER BY ot.no DESC
  6. ",$con);

Y luego:

Código PHP:
Ver original
  1. while($fila=mysql_fetch_array($res)){
  2. echo $fila['subTCotizacion'];
  3. echo $fila['subTOT'];
  4. }

Puede ser una solución.
__________________
Unelink.es - VPS, servidores dedicados, hosting y dominios. 10 años a tu lado.
  #3 (permalink)  
Antiguo 08/06/2015, 05:50
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Consulta tablas dobles y campos dublicados

Suponiendo que ambas tablas están combinada por el campo subT, la consulta te quedaría asi:

Código:
SELECT * FROM cotizacion INNER JOIN ot ON cotizacion.subT=ot.subT
__________________
Somos una serie de acontecimiento que puede venir al caso en un momento dado.
  #4 (permalink)  
Antiguo 09/06/2015, 22:47
 
Fecha de Ingreso: abril-2014
Mensajes: 51
Antigüedad: 10 años
Puntos: 1
Respuesta: Consulta tablas dobles y campos dublicados

Cita:
Iniciado por json Ver Mensaje
Supongo que será para luego recuperar el campo con PHP. No hay ningún problema porque tengas campos con el mismo nombre, una posibilidad es darles un nombre en el select de la consulta:

Código PHP:
Ver original
  1. $res=mysql_query("SELECT cotizacion.id, cotizacion.subT as subTCotizacion, ot.no,ot.elaborado,ot.subT as subTOT FROM cotizacion, ot  
  2. WHERE  
  3. cotizacion.id = ot.cotizacion AND
  4. ot.elaborado = '$nombre' AND
  5. ORDER BY ot.no DESC
  6. ",$con);

Y luego:

Código PHP:
Ver original
  1. while($fila=mysql_fetch_array($res)){
  2. echo $fila['subTCotizacion'];
  3. echo $fila['subTOT'];
  4. }

Puede ser una solución.
Gracias a ambos por su respuesta json fue la acertada para mi problema, ahora tengo una consulta mas con este mismo codigo...

sabemos que hacemos una comparacion de "cotizacion.id = ot.cotizacion"
pero esto limita a los numeros de cotizaciones, en pocas palabras si no exite una ot.cotizacion no sale esa cotizacion.id

como podria hacer para que si me cuente las que no tienen un = ot.cotizacion
ejemplo

cotizacion --- ot
1---------------22
2--------------- (no existe pero carga la cotizacion 2)
3----------------88

Etiquetas: campos, dobles, select, sql, tabla, tablas
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:38.