Podzapytania są logicznie poprawnym sposobem rozwiązywania problemów postaci „Pobierz fakty z A, uwarunkowane faktami z B”. W takich przypadkach bardziej logiczne jest umieszczenie B w podzapytaniu niż wykonanie złączenia. Jest to również bezpieczniejsze w sensie praktycznym, ponieważ nie musisz uważać na powielanie faktów od A z powodu wielu meczów z B.
Praktycznie rzecz biorąc jednak odpowiedź zwykle sprowadza się do wydajności. Niektórzy optymalizatorzy wysysają cytryny, gdy otrzymują połączenie lub podzapytanie, a niektórzy wysysają cytryny w inny sposób, a to jest zależne od optymalizatora, wersji DBMS i zapytania.
Historycznie rzecz biorąc, jawne złączenia zwykle wygrywają, stąd ustalona mądrość, że złączenia są lepsze, ale optymalizatorzy są coraz lepsi, więc wolę najpierw pisać zapytania w logicznie spójny sposób, a następnie restrukturyzować, jeśli uzasadniają to ograniczenia wydajności.