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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  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 8,649 veces)
1mpuls0


Desconectado Desconectado

Mensajes: 1.186


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

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.744


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 am »

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.744


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 am »

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 am »

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 am »

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 am »

Gracias Toxico
La consulta me funciona.

Saludos.
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre como hacer una consulta a la tabla
Bases de Datos
juantxu2 1 2,601 Último mensaje 12 Febrero 2010, 17:26 pm
por ^Tifa^
Doble consulta mysql.. « 1 2 »
PHP
mokoMonster 10 9,922 Último mensaje 7 Agosto 2010, 01:08 am
por mokoMonster
Como hacer un reemplazo doble de caracteres? %Variable:X=Y:1=2%
Scripting
SuperDraco 4 4,962 Último mensaje 26 Marzo 2011, 23:40 pm
por SuperDraco
Cómo hacer esta consulta SQL
Bases de Datos
Aikanáro Anário 1 4,512 Último mensaje 17 Septiembre 2011, 01:56 am
por fran800m
Como hacer que una tabla vacia me retorne algun valor mysql
Bases de Datos
exeny 1 4,673 Último mensaje 20 Diciembre 2011, 20:42 pm
por exeny
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines