Yes, your request is easily solvable using the Rule-based symbology.
In the "Use" layer symbology, select the option Rule-based: here you can create different rules, one for each typology of use, just filtering with the expression
"Use" LIKE "Street"
You can create rules for one or more "Use" attributes.
When all your "use" rules are ready, you can create a sub-category inside each of them, categorising the style according to a second attribute that in your case will be "lamp_type", filtered by the presence/absence of the field attribute "use".
To do it, right-click in the rule label and in the menu and select Refine Current Rule > Add Categories to Rule
This will open a new window for categorising the symbology: here select the expression symbol in the right of Column and use the expression
IF ("use" like 'street', "lamp_type", NULL)
This will create a selection of lamp_types that have that use as attribute. All the others will be ignored.
Press Classify and you will have your selection. I suggests to remove now the Null option (the green in the image).
Repeat the operation for all the uses attributes.
Two necessary steps to have a good result are:
Make not visible the Use symbol to allow the underlying symbols to be visible: to do this right-click in the Use rule Label and select Change opacity from the menú > opacity to O.
The system, as you will realise, create a label for the lamp_type using the expression and his result. Double-click in the label name and change it from the default to the correct label that you want to show.
Your final result will be to possibility to have in your Layer manager a different voice for any lamp_type that is contained in use street.