I'm attempting to develop a visual pressure page, in which you choose an chance, and you choose stages connected with this chance. Possibilities are held in the table RecordTypes, and Stages are held in the table OpportunityStage.

With what table may be the relationship saved?

RecordTypes aren't a table, they are literally some types defined for any specific object, to ensure that any record of this object (for instance any Chance) might have among individuals types. It's essentially an excellent special area around the object which is often used they are driving an entire heap of behaviors — you could have different page designs for every record type, different picklist values, you can personalize validation rules etc..

Stages again really are a 'special' a part of Sales force configuration because they fit in with the Sales process, but the values available rely on the record type (i.e. they act as being a picklist).

Lengthy story short, you don't have to be worried about any relationship of these fields, in database terms they are posts around the chance table, in SFDC terms they are fields around the Chance object.

Edit Following clarification from the needs, i.e requiring the accessible stage names for 2 possibilities.

You will find simple to get using Visualforce with no describe information.

Be sure that your sales processes are defined and associated with appropriate record types for that Possibilities (seems like this was already done). Next, simply load the needed possibilities utilizing a custom controller (or controller extension) — you can specify them via page parameters as below, though this can be a contrived example and doesn't include any error handling etc. (or chance selection):

public with sharing class DualOpptyController
{
    public Opportunity oppty1 {get; set;}
    public Opportunity oppty2 {get; set;}

    public DualOpptyController()
    {
        oppty1 = [select Id, StageName from Opportunity where id = : ApexPages.currentPage().getParameters().get('o1')];
        oppty2 = [select Id, StageName from Opportunity where id = : ApexPages.currentPage().getParameters().get('o2')];
    }
}

Then simply just use <apex:inputField> to place the StageName area to the page:

<apex:page controller="DualOpptyController">
    <apex:form >
        <apex:inputField value="{!oppty1.StageName}"/>
        <apex:inputField value="{!oppty2.StageName}"/>
    </apex:form>
</apex:page>

When for you to do your research for accounts, you can easily make use of the StageName area on oppty and oppty2 inside your controller. The query is going to be something similar to the next (untested):

[Select Id, Name, (select Id, Name from Opportunities where StageName in : liStageNames) from Account]

The issue with this particular obviously, is the fact that it'll return ALL accounts and so i think you would be best looking for Opportunity where StageName equals those of oppty1 coming back the relavant particulars as well as connected account ID. then perform a second query to locate possibilities where StageName equals those of oppty1 and also the account id is incorporated in the group of account IDs situated within the first query. You are still prone to encounter difficulties with coming back a lot of records, to try to refine this process or you might specify other parameters too (for instance, possibilities closing this month).