elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  ¿Cómo hacer una consulta doble a una tabla?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo hacer una consulta doble a una tabla?  (Leído 7,396 veces)
1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
¿Cómo hacer una consulta doble a una tabla?
« en: 8 Junio 2012, 00:14 »

Hola.
Necesito hacer una consulta para obtener dos valores de una misma tabla, pero  necesito que me los muestre en dos columnas.
Tengo la siguiente tabla (localidades).

+------+------------------+
| id   | nombre |
+------+------------------+
|    1 | Oviedo           |
|    2 | Girona           |
|    3 | Barcelona        |
+------+------------------+
(La verdad es que no he podido acomodar la tabla, alguien me puede apoyar con esto?).

Necesito que el resultado de la consulta muestre el nombre de la localidad en columnas.

+-----------+-------------------+
| localidad1  | localidad2             |
+-----------+-------------------+
|    Oviedo   | Girona                  |
+-----------+-------------------+

lo usual sería hacer la consulta "SELECT nombre_localidad FROM localidades WHERE id=1 OR id=2;", pero el resultado obviamente sería el siguiente:

+---------+
| nombre  |
+---------+
| Oviedo  |
| Girona    |
+--------+

Hay alguna manera de hacer lo que necesito?.

Gracias


En línea

abc
:ohk<any>


Desconectado Desconectado

Mensajes: 1.740


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
Re: ¿Cómo hacer una consulta doble a una tabla?
« Respuesta #1 en: 8 Junio 2012, 05:11 »

Como quieres mostrar el resultado de la consulta.

Me imagino que con algun lenguaje como Php u otro no es cierto?

O quieres que la consulta se liste de ese modo en particular desde el SMBD que estes usando.


En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
:ohk<any>


Desconectado Desconectado

Mensajes: 1.740


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
Re: ¿Cómo hacer una consulta doble a una tabla?
« Respuesta #2 en: 8 Junio 2012, 05:14 »

En caso de usar php, seria mas o menos asi:

Tu problema no radica en la consulta sql, mas bien en la forma en la que ordenas tu tabla al momento de mostrar los resultados.

Me imagino que con esto podrias arreglarlo:

Código
  1.  <tr>
  2.     <td> localidad1 </td>
  3.     <td> localidad2 </td>
  4.  </tr>
  5.  <tr>
  6.     <td> Oviedo (Aqui viene el codigo php que imprime el resultado de la consulta)  </td>
  7.     <td> Girona (Aqui viene el codigo php que imprime el resultado de la consulta)  </td>
  8.  </tr>

Que saldria asi:

+-----------+-------------------+
| localidad1  | localidad2     |
+-----------+-------------------+
|    Oviedo   | Girona           |
+-----------+-------------------+

Nose si es a esto que te refieres, pero espero que sea de ayuda.

Saludos
En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: ¿Cómo hacer una consulta doble a una tabla?
« Respuesta #3 en: 8 Junio 2012, 05:47 »

Gracias ohk
Es precisamente lo que no quiero hacer (que por ahora tengo así), ya que siento que son muchas líneas de código para algo tan sencillo.

$setence1="Select *...";
$query1=mysql_query(...);
$array1=mysql_fetch_array(...);
$result1=$array1[];

$setence2="Select *...";
$query2=mysql_query(...);
$array2=mysql_fetch_array(...);
$result2=$array2[];

Pensé que existiría una forma de hacerlo en SMBD, pero si no existe (que quiero suponer que si la hay).

Saludos.
En línea

abc
Toxico


Desconectado Desconectado

Mensajes: 406



Ver Perfil
Re: ¿Cómo hacer una consulta doble a una tabla?
« Respuesta #4 en: 10 Junio 2012, 03:38 »

Gracias ohk
Es precisamente lo que no quiero hacer (que por ahora tengo así), ya que siento que son muchas líneas de código para algo tan sencillo.

$setence1="Select *...";
$query1=mysql_query(...);
$array1=mysql_fetch_array(...);
$result1=$array1[];

$setence2="Select *...";
$query2=mysql_query(...);
$array2=mysql_fetch_array(...);
$result2=$array2[];

Pensé que existiría una forma de hacerlo en SMBD, pero si no existe (que quiero suponer que si la hay).

Saludos.

Hola, lo que tu quieres hacer es "pivot" de tablas, sql server y oracle tienen buen soporte para ello en mysql, la solución vendria hacer algo asi.

Código:
select
(select nombre from localidades where id = 1) as localidad1,
(select nombre from localidades where id = 2) as localidad2
from localidades
limit 1

No es lo optimo pero se acerca algo.

En línea

solo el principio....

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: ¿Cómo hacer una consulta doble a una tabla?
« Respuesta #5 en: 10 Junio 2012, 05:16 »

Gracias Toxico
La consulta me funciona.

Saludos.
En línea

abc
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines