devi fare una query con join e costruirti un array bidimensionale (io lo metterei in una funzione) poi estrai gli elementi di questo arry e ti stampi il menu (io farei una seconda funzione).

L'ho buttata giù così... (no testata!!)
Codice PHP:
function costruzione_array_menu()
    {
    
$query ="
        SELECT 
            azienda.elenco, 
            menu.menu
        FROM azienda 
        LEFT OUTER JOIN 
            menu
            ON
            azienda.elenco = menu.tipo_elenco
        ORDER BY azienda.id_azienda ASC"


    
$result mysql_query($query) or die(mysql_error());
    
    
$array_menu = array();
    while(
$row mysql_fetch_row($result))
        {
        list(
$elenco$menu) = $row;
        
$array_menu[$elenco][] = $menu
        }
    return 
$array_menu;
    }
    
function 
stampa_menu($array_menu)
    {
    
$html '';
    if(
is_array($array_menu) AND !empty($array_menu))
        {
        
$html .= '<ul class="menu">';
        foreach(
$array_menu as $chiave_principale => $elenco)
            {
            
$html .= '[*][url=""]'.$chiave_principale.'[/url] ';
            if(
is_array($elenco) AND !empty($elenco))
                {
                foreach(
$elenco as $chiave_secondaria => $menu)
                    {
                    
$html .= '
                                <ul> 
                                [*]
                                    [url=""]'
.$menu.'[/url]
                                 [/list]'
;
                    }
                }
            
$html .= '';
            }
                
$html .= '[/list]';
        }
    return 
$html;
    }
    
    
/************STAMPA IL MENU*/
$array_menu costruzione_array_menu();
$formatta_html_menu stampa_menu($array_menu);
echo 
$formatta_html_menu