For example, if you see the association pxAssignedWorkGroupInfo we are making the multiple association between 3 classes i.e. Work-, Assign-Worklist and Data-Admin-WorkGroup as shown below.
Work- and Assign-Worklist classes are being joined based on Assign-Worklist.pxRefObjectKey equal to Work.pzInsKey
Assign-Worklist and Data-Admin-WorkGroup classes are being joined based on Assign-Worklist.pxWorkGroup equal to Data-Admin-WorkGroup.pyWorkGroupName
Note: Class A is joined with Class B and Class B in turn joined with Class C => This is the usage of the multiple association to fetch the data from all the 3 classes, when you don't have common column in all the 3 classes.
Hope this makes you clear about the multiple association usage.
Use an Association rule to define a relationship between two classes based on matching values in pairs of properties. A typical use of an association rule is to enable your application to automatically add a join to a report that displays properties from both classes referenced in the association.
Associations are just a way of defining the join outside the RD as a separate rule. They both achieve the same purpose. But one advantage with using associations is that you are decoupling the logic/join conditions so that they can be used in multiple RDs without having to define the same join conditions every time.
E.x. If you need to join work class RDs with other class (let's say tag class) many times in you application, then it will be better to create an association rule to define the join and conditions and reuse the same across multiple RDs.