Zapytanie używa listy tabel po przecinku w klauzuli FROM, co oznacza iloczyn kartezjański (CROSS JOIN), a następnie ogranicza go warunkami w WHERE. W praktyce takie warunki równościowe pełnią rolę złączeń (equi-join).
Kluczowe jest wskazanie, po jakiej kolumnie łączone są tabele i ile tabel obejmuje ten łańcuch złączeń:
- Warunki producent.nr_id = hurtownia.nr_id, hurtownia.nr_id = sklep.nr_id oraz sklep.nr_id = serwis.nr_id tworzą spójny łańcuch, który obejmuje wszystkie cztery tabele. Oznacza to, że w wynikowych wierszach wartości nr_id muszą być takie same w producent, hurtownia, sklep i serwis.
- Warunek producent.wyrob_id = serwis.wyrob_id łączy tylko dwie tabele: producent i serwis. Nie ma tu odwołania do hurtownia ani sklep, więc ten parametr nie jest "wspólny dla wszystkich".
Następnie pojawia się filtr producent.nr_id = 1. Ponieważ nr_id jest już użyte do powiązania wszystkich tabel, to równości w WHERE powodują "propagację" ograniczenia: skoro producent.nr_id ma wynosić 1, to aby spełnić równości, również hurtownia.nr_id, sklep.nr_id i serwis.nr_id muszą wynosić 1 w pasujących rekordach.
Dlatego odpowiedź "Według parametru nr id dla wszystkich tabel" jest poprawna: nr_id to parametr, który spina cały wynik obejmujący cztery tabele. Odpowiedzi odwołujące się do "wyrób id/wyrob_id" są błędne co do liczby tabel, bo ten warunek dotyczy tylko relacji producent–serwis. Warianty mówiące o "wyłącznie dla trzech tabel" są błędne, bo złączenia po nr_id obejmują cztery tabele wskazane w FROM.
Wskazówka egzaminacyjna: zawsze policz, w ilu tabelach występuje dana kolumna w warunkach złączeń i czy tworzy ona ciąg łączący wszystkie tabele, czy tylko fragment.