If you're working in ASP.NET, you can put a menu control, and write the query as a stored procedure then stick a datasource on the page and hook them all up. For menus like this that are unlikely to change frequently but appear on all pages, you should also use caching, which can easily be turned on in the control in .net. If you're serving 10,000 pages per day, you don't want to be making 10,000 round trips to the db to get exactly the same data when you can do just one.