Can you provide what you've tried so far, and what labels you have in your graph?
Keep in mind that when doing a straightforward translation from SQL to Cypher, you'll use node labels in place of tables, and that outer joins are usually performed using OPTIONAL MATCH.
In the case where you originally had foreign keys, you'd create relationships between nodes (so joins on values are represented as expansions via relationships).
In this particular case, you might represent this by creating some new node that has relationships to each pairing of nodes:
MATCH (a:A), (b:B) // this creates a cartesian product of all :A and :B nodes
WHERE // add your predicate on which pairings to keep
CREATE (c:C) // entry pointing to each pair that passes the above filter
You would use whatever relationship types make sense to you.
This approach assumes that you just need nodes that reference the nodes in the other two labels, no data is being copied between the nodes for this approach. If you do need data copied, you'd copy whatever properties you need from :A and/or :B into the new :C nodes.
In any case it may be useful to review the documentation on Neo4j and Cypher to better understand nodes, labels, and relationships in general.