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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  SQL consulta senzilla
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: SQL consulta senzilla  (Leído 2,530 veces)
Dawman

Desconectado Desconectado

Mensajes: 16


Ver Perfil
SQL consulta senzilla
« en: 30 Octubre 2013, 22:20 pm »

Hola a todos...
tengo esta consulat con la cual pretendo obtener datos de 2 tablas diferentes...
Noticia y noticia foto
tal y como tengo la consulta me saca todas las noticias que son activas y en caso que tengan asociada un foto prinicpal la mostraria tambien en caso contrario solo saca la noticia sin foto...
el problema de mi consulta es que si una noticia tiene asociada mas de una foto, me repite la noticia con las diferentes fotos...y no hay DISTINCT que valga!!
Código
  1.  
  2. SELECT
  3.    noticia.*,
  4.    noticia_foto.*
  5. FROM
  6.   noticia LEFT JOIN noticia_foto ON noticia_id = noticia_foto_noticia_fk AND noticia_foto_principal = 1
  7. WHERE
  8.   noticia_actiu = 1  
  9.  
  10.  Aqui me hace falta una restirccion para para que muestra las noticias con id diferente
  11.  
  12. ORDER BY
  13.   noticia_data DESC;
  14.  
  15.  


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: SQL consulta senzilla
« Respuesta #1 en: 30 Octubre 2013, 22:32 pm »

Obvio porque el DISTINCT se ejecuta siempre y cuando los registros sean iguales, y supongo que la noticia y la foto son independientes, es decir, unicos.

Lo que entendi fue qué, necesitas mostrar un listado de noticias, que contenga, 1 Noticia + 1 imagen -sin importar si la noticia tenga más imagenes-?


« Última modificación: 30 Octubre 2013, 22:33 pm por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Dawman

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: SQL consulta senzilla
« Respuesta #2 en: 30 Octubre 2013, 23:18 pm »

Obvio porque el DISTINCT se ejecuta siempre y cuando los registros sean iguales, y supongo que la noticia y la foto son independientes, es decir, unicos.

Lo que entendi fue qué, necesitas mostrar un listado de noticias, que contenga, 1 Noticia + 1 imagen -sin importar si la noticia tenga más imagenes-?

Mas o menos...
Siempre hay que mostrar la noticia, tenga foto o no tenga...
la questio és cuando una misma noticia tenga mas de una foto, entonces tiene que mostrar la noticia y una foto(cualquiera de las que hay)
En línea

DanteInfernum

Desconectado Desconectado

Mensajes: 60


Ver Perfil
Re: SQL consulta senzilla
« Respuesta #3 en: 2 Noviembre 2013, 03:16 am »

Fijate si te sirve esto:

Código
  1. USE Master
  2. GO
  3. CREATE DATABASE Noticias
  4. GO
  5.  
  6. USE Noticias
  7. GO
  8.  
  9. CREATE TABLE Noticias(
  10. idNoticia INT PRIMARY KEY,
  11. nombre VARCHAR(50)
  12. )
  13.  
  14. CREATE TABLE Fotos(
  15. idFoto INT PRIMARY KEY,
  16. noticia INT FOREIGN KEY REFERENCES Noticias(idNoticia)
  17. )
  18. GO
  19.  
  20. INSERT INTO Noticias VALUES(1, 'noticia 1');
  21. INSERT INTO Noticias VALUES(2, 'noticia 2');
  22. INSERT INTO Noticias VALUES(3, 'noticia 3');
  23. INSERT INTO Noticias VALUES(4, 'noticia 4');
  24.  
  25. INSERT INTO Fotos VALUES(1, 1);
  26. INSERT INTO Fotos VALUES(2, 1);
  27. INSERT INTO Fotos VALUES(3, 1);
  28. INSERT INTO Fotos VALUES(4, 2);
  29.  
  30. GO
  31.  

Código
  1. SELECT nombre, foto
  2. FROM noticias LEFT JOIN (
  3. SELECT  noticia, MAX(idfoto) AS foto
  4. FROM fotos
  5. GROUP BY noticia
  6. ) AS fotos
  7. ON noticias.idNoticia = fotos.noticia
  8.  

Como dijiste que te sirve cualquier foto, acá estoy seleccionando la foto con mayor número de Id de cada noticia.
En el ejemplo: la noticia 1 está relacionada con 3 fotos distintas; la foto con mayor id es la foto número 3; entonces la consulta devuelve noticia 1 con foto 3 (una única foto).
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
consulta sos
Diseño Gráfico
Dannysoft 1 2,775 Último mensaje 31 Agosto 2004, 08:13 am
por e S c u r S o ...
Consulta; Necesito armar una consulta para saber si una fecha ha caido dentro...
Bases de Datos
astinx 6 6,017 Último mensaje 23 Diciembre 2011, 20:34 pm
por astinx
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines