Это стандартный SQL, хотя я бы поставил условие корреляции в WHERE
:
SELECT *
FROM Table_1
WHERE 0 < (SELECT COUNT(Table_2.ID)
FROM Table_2 INNER JOIN
Table_3
ON Table_2.ID = Table_3.A_ID
WHERE Table_3.B_ID = Table_1.ID
);
Это должно работать в обеих базах данных.
Однако я написал бы это, используя EXISTS
:
SELECT *
FROM Table_1
WHERE EXISTS (SELECT 1
FROM Table_2 INNER JOIN
Table_3
ON Table_2.ID = Table_3.A_ID
WHERE Table_3.B_ID = Table_1.ID
);
Это также должно работать на любой базе данных.
Если ваши запросыполучая разные результаты, наиболее вероятная причина заключается в том, что в двух базах данных данные различны.