Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2014
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.27 KB | None | 0 0
  1. SELECT id_event , event_title, event_details, dates.event_date, id_show, id_category, distance FROM(
  2. SELECT event.id_event id_event, event_title, event_details, min(event_date_time) event_date_time, event_showtime.id_show , event_category.id_category id_category, ( 6371 * ACOS( COS( RADIANS( '49.20513921227407' ) ) * COS( RADIANS( event_showtime.latitude ) ) * COS( RADIANS( event_showtime.longitude ) - RADIANS( '18.762441839599678' ) ) + SIN( RADIANS( '49.20513921227407' ) ) * SIN( RADIANS( event_showtime.latitude ) ) ) ) AS distance
  3. FROM event
  4. JOIN event_showtime ON event.id_event = event_showtime.id_event
  5. JOIN event_category ON event.id_category = event_category.id_category
  6. JOIN ( SELECT id_event, min(event_date_time) as event_date_time FROM event_showtime
  7. WHERE event_date_time > NOW()
  8. GROUP BY id_event ) AS dates ON event.id_event = dates.id_event
  9. WHERE event_date_time > NOW()
  10. GROUP BY event.id_event
  11. HAVING distance < '5'
  12. ORDER BY distance
  13. LIMIT 0 , 20
  14. )t
  15.  
  16. SELECT
  17. es.id_show,
  18. e.id_event ,
  19. e.event_title,
  20. e.event_details,
  21. d.event_date_time,
  22. ec.id_category,
  23. ( 6371 * ACOS( COS( RADIANS( '49.20513921227407' ) ) * COS( RADIANS( es.latitude ) ) * COS( RADIANS( es.longitude ) - RADIANS( '18.762441839599678' ) ) + SIN( RADIANS( '49.20513921227407' ) ) * SIN( RADIANS( es.latitude ) ) ) ) AS distance
  24. FROM event e
  25. JOIN event_showtime es ON e.id_event = es.id_event
  26. JOIN event_category ec ON e.id_category = ec.id_category
  27. JOIN ( SELECT id_event,
  28. min(event_date_time) as event_date_time
  29. FROM event_showtime
  30. WHERE event_date_time > NOW()
  31. GROUP BY id_event ) AS d
  32. ON (es.id_event = d.id_event AND es.event_date_time =d.event_date_time)
  33. WHERE d.event_date_time > NOW()
  34. GROUP BY e.id_event
  35. -- HAVING distance < '5'
  36. ORDER BY distance
  37. LIMIT 0 , 20
  38.  
  39. `id_show`, `id_event`, `latitude`, `longitude`, `event_date_time`
  40. (1, 1, 49.2016762922894, 18.7615620750428, '2014-03-31 16:13:17'),
  41. (2, 1, 49.2016762922894, 18.7615620750428, '2014-04-01 20:00:00'),
  42. (3, 2, 49.2113914818564, 18.7520992416382, '2014-03-31 15:00:00'),
  43. (4, 2, 49.0545135142313, 20.2952223676682, '2014-04-16 11:00:00'),
  44. (5, 2, 49.2113914818564, 18.7520992416382, '2014-04-23 11:00:00'),
  45. (6, 2, 49.0545135142313, 20.2952223676682, '2014-04-30 11:00:00'),
  46. (7, 2, 49.2016762922894, 18.7615620750428, '2014-04-29 12:00:00'),
  47. (8, 1, 49.2016762922894, 18.7615620750428, '2014-04-24 12:00:00');
  48.  
  49. SELECT t.* FROM (
  50. SELECT
  51. es.id_show,
  52. e.id_event,
  53. e.event_title,
  54. e.event_details,
  55. MIN(es.event_date_time) event_date_time,
  56. ec.id_category,
  57. es.distance
  58. FROM
  59. event e
  60. JOIN event_category ec
  61. ON e.id_category = ec.id_category
  62. JOIN
  63. (SELECT
  64. `id_show`,
  65. `id_event`,
  66. `latitude`,
  67. `longitude`,
  68. event_date_time,
  69. (
  70. 6371 * ACOS(
  71. COS(RADIANS('49.20513921227407')) * COS(RADIANS(event_showtime.latitude)) * COS(
  72. RADIANS(event_showtime.longitude) - RADIANS('18.762441839599678')
  73. ) + SIN(RADIANS('49.20513921227407')) * SIN(RADIANS(event_showtime.latitude))
  74. )
  75. ) AS distance
  76. FROM
  77. event_showtime
  78. WHERE `event_date_time` > NOW()
  79. HAVING distance < 5) es
  80. ON (e.id_event = es.id_event)
  81. GROUP BY e.id_event
  82. ) t
  83. JOIN `event_showtime` es USING(id_event,event_date_time)
  84. ORDER BY t.distance
  85. LIMIT 0, 20
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement