Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Subqueries complejos?

Estas en el tema de Subqueries complejos? en el foro de Mysql en Foros del Web. Hola Es mi primer post por aquí y es referente a MySQL Tengo una tabla con la siguiente estructura: Código: +----------+------------+------+-----+---------+----------------+ | Field | Type ...
  #1 (permalink)  
Antiguo 10/02/2011, 16:11
 
Fecha de Ingreso: febrero-2011
Mensajes: 2
Antigüedad: 13 años, 2 meses
Puntos: 0
Subqueries complejos?

Hola

Es mi primer post por aquí y es referente a MySQL

Tengo una tabla con la siguiente estructura:

Código:
+----------+------------+------+-----+---------+----------------+
| Field    | Type       | Null | Key | Default | Extra          |
+----------+------------+------+-----+---------+----------------+
| ID       | bigint(20) | NO   | PRI | NULL    | auto_increment |
| USER_ID  | bigint(20) | NO   | MUL | NULL    |                |
| FIELD_ID | bigint(20) | NO   | MUL | NULL    |                |
| VALUE    | text       | NO   |     | NULL    |                |
+----------+------------+------+-----+---------+----------------+
Cuyos valores son parecidos a estos:

Código:
+----+---------+----------+----------------------+
| id | user_id | field_id | substr(value, 1,20)  |
+----+---------+----------+----------------------+
|  9 |       2 |        2 | Medicos Familiares   |
| 10 |       2 |        3 | Calle del mal 666    |
| 11 |       2 |        4 | When I was 18 I went |
| 12 |       2 |        5 | The details of my li |
| 13 |       2 |        6 | 25                   |
| 15 |       2 |        8 | 7340                 |
| 16 |       2 |        9 | Distrito Federal     |
| 17 |       2 |       10 |                      |
| 18 |       2 |       11 | Gustavo A. Madero    |
| 19 |       2 |       12 | La Laguna Ticomßn    |
| 20 |       2 |        7 | http://xxx/ |
| 36 |       2 |       13 | 11-22-33-44-55       |
| 37 |       2 |       14 | 99-88-77-66-55       |
| 62 |       2 |       15 |                      |
| 63 |       2 |       16 |                      |
| 24 |       3 |        2 | Alergologos,Algelogo |
| 25 |       3 |        4 | We had completed the |
| 26 |       3 |        5 | <p>We had completed  |
| 27 |       3 |        6 | 20                   |
| 28 |       3 |        7 | http://xx.ax/ |
| 29 |       3 |        9 | Chiapas              |
| 30 |       3 |       11 | Juarez               |
| 31 |       3 |       12 | Hidalgo              |
| 32 |       3 |        8 | 29514                |
| 33 |       3 |        3 | Mi casa #25          |
| 34 |       3 |       13 | 55-55-55-66-66       |
| 35 |       3 |       14 | 55-66-77-88-99       |
+----+---------+----------+----------------------+
El campo field_id esta referenciado a datos de otra tabla en donde existen reglas y demas cosas para dicho campo asi como su nombre

Con esta estructura logro hacer una consulta simple sabiendo el field_id y el valor

Código MySQL:
Ver original
  1. select * from table where field_id = 2 and value like "%aler%"

esto me regresa:
Código:
+----+---------+----------+---------------------------------------------------------+
| ID | USER_ID | FIELD_ID | VALUE                                                   |
+----+---------+----------+---------------------------------------------------------+
| 24 |       3 |        2 | Alerg¾logos,Alg¾logos,Anestesi¾logos,MÚdicos Familiares |
| 50 |       5 |        2 | Alergologos pediatras                                   |
+----+---------+----------+---------------------------------------------------------+
Todo bien hasta aquí

Ahora el field_id #2 es especialidad y el field_9 es un estado

Mi pregunta es como podre hacer una consulta "compleja", es decir seleccionar el user_id que sea del estado chiapas pero que tambien tenga la especialidad de alergologo?

Espero me puedan ayudar

Gracias.
  #2 (permalink)  
Antiguo 10/02/2011, 16:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Subqueries complejos?

SELECT user_id, COUNT(DISTINCT field_id) dato FROM tutabla WHERE field_id IN(2, 9) GROUP BY user_id HAVING dato = 2
  #3 (permalink)  
Antiguo 10/02/2011, 17:40
 
Fecha de Ingreso: febrero-2011
Mensajes: 2
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Subqueries complejos?

Hola jurena,

Gracias pero sabes no me queda clara la consulta, en donde hago la comparacion para el estado?

es decir, algo como:

Seudo SQL
Código MySQL:
Ver original
  1. select user_id donde el field_id = 2 con valor como "%algo%" Y field_id=9 con valor como "%chiapas%"

cheers!!
  #4 (permalink)  
Antiguo 11/02/2011, 10:08
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Subqueries complejos?

SELECT user_id, COUNT(*) dato FROM tutabla WHERE value LIKE '%alerg%' OR value LIKE 'Chiapas' GROUP BY user_id HAVING dato = 2

Etiquetas: Ninguno
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 14:37.