Distinct para tres campos mysql

Esta ves me encuentro con un problema en el cual lleno un combobox con una base de datos de 3 columnas diferentes ( esp1, esp2 esp3) pero no he podido hacer que nada más me muestre los que no están repetidos .. Espero y pudieran ayudarme
De antemano muchas gracias
Mi combobox aparece así
Y no deberían aparecer los datos repetidos

Se los agradeceré mucho

le eh intentado de varias maneras no he podido
mi codigo

$clavebuscadah=mysql_query("SELECT distinct w1.esp1, w1.esp2, w1.esp3 FROM (select esp1, esp2, esp3 from especialidad) group by w1.esp1, w1.esp2, w1.esp3",$conexion) )

2 Respuestas

Respuesta
1

Creo que la solución más viable seria el crear por separado las tablas y así ahorrarse problemas en el futuro ejemplo

mysql> SELECT * FROM doctores;
+-----------+--------+
| id_doctor | nombre |
+-----------+--------+
|         1 | Hugo   |
|         2 | Paco   |
|         3 | Luis   |
|         4 | Donald |
+-----------+--------+
mysql> SELECT * FROM especialidades;
+-----------------+------------------+
| id_especialidad | especialidad     |
+-----------------+------------------+
|               1 | Pediatría        |
|               2 | Cardiología      |
|               3 | Medicina General |
|               4 | Neurología       |
|               5 | Geriatría        |
+-----------------+------------------+
mysql> SELECT * FROM doctores_especialidades;
+------------------------+-----------+-----------------+
| id_doctor_especialidad | id_doctor | id_especialidad |
+------------------------+-----------+-----------------+
|                      1 |         1 |               1 |
|                      2 |         2 |               1 |
|                      3 |         2 |               2 |
|                      4 |         3 |               3 |
|                      5 |         4 |               1 |
|                      6 |         4 |               2 |
|                      7 |         4 |               3 |
|                      8 |         4 |               4 |
|                      9 |         4 |               5 |
+------------------------+-----------+-----------------
Respuesta
1

Te esta faltando ademas el alias de la subquery, que se ve planeabas definirlo como w1.
Estas trayendo 3 campos distinct en esa consulta y es logico que te salga asi.

Imagina esto, tenes 3 cirujanos con diferentes nombres y direcciones:

Cirujano | Juan | Calle 12 Numero 123

Cirujano | Jose | Calle 23 Numero 234

Cirujano | Pedro | Calle 34 Numero 345

Al hacer una consulta y traer el distinct, te va a traer los tres porque Cirujano de nombre Juan que viva en Calle 12 Numero 123 hay solo uno, Cirujano de nombre Jose tambien solo uno viviendo en Calle 23 Numero 234 y lo mismo con Pedro.

Si queres llenar la lista, con especialidades diferentes, deberias hacer un select distinct del campo que contiene las especialidades.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas