Kod, który podałeś, nie zawiera niektórych istotnych elementów, aby osiągnąć pożądany rezultat. Oto szczegółowy opis krok po kroku, jak rozwiązać ten problem:
1. Funkcja `EXISTS` w podzapytaniu jest używana do sprawdzenia, czy istnieje przynajmniej jeden wiersz spełniający określone warunki. Jednak w Twoim kodzie podzapytanie sprawdza tylko istnienie loginu w tabeli `customer_user` z domeną 'y'. Aby znaleźć loginy, które występują zarówno na domenie 'x', jak i 'y', musisz zmodyfikować podzapytanie, aby sprawdzić login w obu domenach.
SELECT login,
EXISTS(
SELECT 1
FROM customer_user AS cu2
INNER JOIN customer AS c2 ON cu2.customer_id = c2.customer_id
WHERE cu.login = cu2.login
AND c2.domain = 'y'
) AS dubel
FROM customer AS c
INNER JOIN customer_user AS cu ON cu.customer_id = c.customer_id
WHERE c.domain = 'x';
Ten zmodyfikowany kod łączy tabele `customer` i `customer_user` na podstawie kolumny `customer_id` i sprawdza loginy, które występują zarówno na domenie 'x', jak i 'y'.
2. Klauzula `INNER JOIN` służy do połączenia wierszy z tabel `customer` i `customer_user` na podstawie pasujących wartości kolumny `customer_id`. Zapewnia to, że w wyniku będą uwzględnione tylko wiersze z pasującymi wartościami `customer_id`.
3. Klauzula `WHERE` służy do filtrowania wierszy z tabeli `customer`, gdzie domena jest równa 'x'. Zapewnia to, że uwzględniane są tylko klienci z domeną 'x' w zapytaniu.
Dokonując tych modyfikacji, zapytanie powinno zwrócić loginy, które występują zarówno na domenie 'x', jak i 'y'.