You should be able to obtain the necessary information using a subquery. The real question here is how your request is configured. Your query will need access to all levels of the data model in order to be accessible. If you rely on data returned by a trigger or a standard controller, I would recommend that the account object gain access to additional information.
So, I expected to see something like:
List<Account> accounts = [SELECT Id, Name, (SELECT Id, pqr__r.Id, pqr__r.Name FROM abc__r) FROM Account];
for (Account acct : accounts) {
string someValue = acct.abc__r[0].pqr__r.Name;
}
, , , , ABC, , , , . PQR.