Ver Mensaje Individual
  #9 (permalink)  
Antiguo 22/10/2008, 13:20
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 2 meses
Puntos: 300
Respuesta: Se puede simplificar esta sentencia?...

Para el top 10, prueba esta, y me dirás el rendimiento:

Código sql:
Ver original
  1. SELECT dl.title, dl.location, dl.url, dl.rank, dl.fecha_de_alta, dl.description, dc.path, COUNT( dlc.id_link ) totallinks
  2. FROM dir_links dl
  3. INNER JOIN dir_categories dc ON dl.id_category = dc.id
  4. INNER JOIN (
  5.  
  6. SELECT dl.id
  7. FROM `dir_links` dl
  8. WHERE dl.id_category !=333 AND dl.STATUS = 'active'
  9. ORDER BY rank DESC
  10. LIMIT 10
  11. )t1 ON dl.id = t1.id
  12. INNER JOIN dir_link_clicks dlc ON dlc.id_link = dl.id
  13. GROUP BY dlc.id_link
  14. ORDER BY dl.rank DESC , totallinks DESC

Esto es para que te hagas una idea. Te iré añadiendo las otras en este post, pero es posible que las saques tú aplicando el mismo sistema...

Para últimos enlaces:
Código sql:
Ver original
  1. SELECT dl.title, dl.location, dl.url, dl.rank, dl.fecha_de_alta, dl.description, dc.path, COUNT( dlc.id_link ) totallinks, dl.STATUS
  2. FROM dir_links dl
  3. INNER JOIN dir_categories dc ON dl.id_category = dc.id
  4. INNER JOIN (
  5.  
  6. SELECT dl.id
  7. FROM `dir_links` dl
  8. WHERE dl.id_category !=333 AND dl.STATUS = 'active'
  9. ORDER BY dl.fecha_de_alta DESC
  10. LIMIT 10
  11. )t1 ON dl.id = t1.id
  12. INNER JOIN dir_link_clicks dlc ON dlc.id_link = dl.id
  13. GROUP BY dlc.id_link
  14. ORDER BY dl.fecha_de_alta DESC

Para los más visitados
Código sql:
Ver original
  1. SELECT dl.title, dl.location, dl.url, dl.rank, dl.fecha_de_alta, dl.description, dc.path, dl.STATUS, t1.tot AS totallinks
  2. FROM dir_links dl
  3. INNER JOIN dir_categories dc ON dl.id_category = dc.id
  4. INNER JOIN (
  5.  
  6. SELECT dl2.id, COUNT( dlc.id_link ) AS tot
  7. FROM `dir_links` dl2
  8. INNER JOIN dir_link_clicks dlc ON dl2.id = dlc.id_link
  9. WHERE dl2.id_category !=333
  10. AND dl2.STATUS = 'active'
  11. GROUP BY dlc.id_link
  12. ORDER BY tot DESC
  13. )t1 ON dl.id = t1.id
  14. ORDER BY totallinks DESC , dl.rank DESC

Última edición por jurena; 22/10/2008 a las 14:20