Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-07-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.108
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Cómo utilizar consultas con DISTINCT de forma correcta

Hola,

Salud para todos. Me encuentro con un problema al tratar de llevar a cabo cierta consulta en MySQL trabajando con PHP. El objetivo de la consulta es obtener una serie de registros sin duplicar y para ello la escribo como sigue:

Código PHP:
$consultaSql "SELECT DISTINCT enlaces.url, enlaces.titulo, enlaces.fecha, 
                 enlaces.descripcion, enlaces.etiquetas, usuarios.login 
                  FROM enlaces, usuarios"

La intención de la consulta es, como digo, que retorne una serie de registros (enlaces) que no estén duplicados. El problema viene dado (por lo poco que he averiguado sobre DISTINCT) al incluir también en el SELECT un campo perteneciente a otra tabla.

Como el DISTINCT se realiza sobre los campos incluidos en el SELECT, resulta que la consulta al cabo retorna enlaces repetidos, porque los usuarios de los enlaces no están repetidos... ¿se comprende? Esta consulta funciona tal como se espera:

Código PHP:
$consultaSql "SELECT DISTINCT enlaces.url, enlaces.titulo, enlaces.fecha, 
                 enlaces.descripcion, enlaces.etiquetas 
                  FROM enlaces"

O sea, retorna enlaces sin duplicar, cuyos campos especificadosen el SELECT no sean iguales. Pero, entonces estoy en un problema... porque según mi lógica (pobre, de diez duros) sería bien que dicha cosulta me retornara también los nombres de los usuarios, porque estos son como los "dueños" de los enlaces, y, junto a la información de cada enlace quisiera mostrar a su dueño.

Lo que se me ocurre (el no va más) es incluir en la consulta anterior el campo "id_usuario" conque cuenta cada enlace, y, luego, para cada enlace, buscar el "nombre" del usuario correspondiente a ese "id_usuario",... pero, claro está, si hay cien enlaces... significarían cien consultas a la base de datos... y esto no tiene mucho sentido, porque a más enlaces más consultas... algo que no concuerda demasiado, ¿no os parece?

En fin. Maestros del SQL, licenciados en PHP, iniciados en DISCINCT y sabios en general, ¿qué puedo hacer? ¿pido un imposible? ¿se me está escapando alguna cosa? Seguro. Muchas gracias de antemano por cuanto podáis decir al respecto.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cual es la Forma Correcta de Guardar Texto en un IbDataset con TcpServer???? AGAG4 Varios 0 10-12-2004 22:14:41
Forma correcta de emigrar base de datos.. ronimaxh Firebird e Interbase 5 07-04-2004 23:34:38
existe una forma visual para crera tablas y consultas en interbase? viajero2015 Firebird e Interbase 4 21-02-2004 22:58:36
DISTINCT con query Robert Tablas planas 15 03-11-2003 15:53:38
Como pasar parametros de una forma hija a otra forma hija luisreg OOP 3 17-09-2003 18:18:50


La franja horaria es GMT +2. Ahora son las 13:06:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi