Guest User

Untitled

a guest
Feb 19th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. -- I spent all of yesterday re-writing queries for a government project
  2. -- because their production database runs MySQL v3 and they won't upgrade.
  3. -- MySQL 3 sucks and doesn't even support sub-queries. This is an example of
  4. -- how I wasted what little time I have left:
  5.  
  6.  
  7. -- The original:
  8. SELECT p1. * , (
  9. SELECT COUNT( `id` )
  10. FROM `pages` p2
  11. WHERE p1.id = p2.parent_id ) AS `children`
  12. FROM `pages` p1
  13. INNER JOIN `tests` t ON t.id = p1.test_id
  14. INNER JOIN `tests_users` tu ON tu.test_id = t.id
  15. WHERE `parent_id` =5
  16. AND `in_menu` =1
  17. AND `user_id` =19
  18. ORDER BY `order`
  19.  
  20. -- Revised:
  21. SELECT p1 . * , COUNT( p2.id ) AS children
  22. FROM `pages` p1
  23. INNER JOIN `tests` t ON t.id = p1.test_id
  24. INNER JOIN `tests_users` tu ON tu.test_id = t.id
  25. LEFT JOIN `pages` p2 ON p2.`parent_id` = p1.`id`
  26. WHERE p1.`parent_id` =5
  27. AND p1.`in_menu` =1
  28. AND `user_id` =19
  29. GROUP BY p1.`id`
  30. ORDER BY `order`
Add Comment
Please, Sign In to add comment