Dépend de votre moteur SQL. Les systèmes SQL plus récents dotés d'optimiseurs de requêtes raisonnables réécriront très probablement les deux requêtes dans le même plan. En règle générale, une sous-requête (votre deuxième requête) est réécrite à l'aide d'une jointure (la première requête).
Dans les moteurs SQL simples qui n'ont peut-être pas de bons optimiseurs de requêtes, la jointure devrait être plus rapide car ils peuvent exécuter des sous-requêtes dans une table temporaire en mémoire avant d'exécuter la requête externe.
Dans certains moteurs SQL qui ont une empreinte mémoire limitée, cependant, la sous-requête peut être plus rapide car elle ne nécessite pas de jointure, ce qui produit plus de données.
Donc, en résumé, ça dépend.