Join two Queries

Hello, I am using cakephp 4, and I do not know how to do a query like that:

SELECT
* 
FROM (
	SELECT * FROM `node_types` WHERE node_types.node_group_id = 2 ORDER BY node_order
) as t1
LEFT JOIN (
    SELECT * FROM `nodes` WHERE nodes.service_request_id = 12
) as t2
ON (
	t1.id = t2.node_type_id
)

I am trying with

$query_node_types = $this->NodeTypes->find()
->where([‘NodeTypes.node_group_id’=>2])
->contain([‘Nodes’])
->order([‘NodeTypes.node_order’]);
$query_node_types->leftJoinWith(‘Nodes’)
->where([‘Nodes.service_request_id’=>12]);

But the result sql is

SELECT
*
FROM node_types NodeTypes
LEFT JOIN nodes Nodes ON NodeTypes.id = (Nodes.node_type_id)
WHERE (NodeTypes.node_group_id = 2 AND Nodes.service_request_id = 12)
ORDER BY NodeTypes.node_order

The problem is that the second one, only gets thet nodeTypes that has a node that comply the rule “[‘Nodes.service_request_id’=>12]”. The first one shows all the NodeTypes that comply the condition “[‘NodeTypes.node_group_id’=>2]”, joining with nodes that comply the other condition, but if there are some nodeTypes without nodes, they are showing also.

Thanks in advance