Во-первых, чтобы разобраться с контекстом, я пытаюсь написать запрос на SQL Server 2005. Ниже приведена структура моей таблицы
Schema1.Table1
GUID
1
2
3
Schema2.Table2
GUID MAINTITLE
1 Water Monkies
2 Water Doggies
Schema3.Table3
GUID MAINTITLE
3 Water Hyrdas
Ожидаемое поведение - пользователь будет искать «Вода», а ячтобы получить все GUID в Schema1.Table1, сопоставьте их с записями в Schema2.Table2 и Schema3.Table3, где GUID в списке И MAINTITLE, как '% WATER%'
Я должен добиться этого с помощью JOINS.
То, что я сделал до сих пор:
select Schema1.Table1.GUID
from Schema1.Table1 JOIN Schema2.Table2 ON Schema1.Table1.GUID = Schema2.Table2.GUID
JOIN Schema3.Table3 ON Schema1.Table1.GUID = Schema3.Table3.GUID
, но это возвращает результат AND, который не дает мне результатов
Затем я попытался
select distinct Schema1.Table1.GUID
from Schema1.Table1, Schema2.Table2, Schema3.Table3
where (Schema2.Table2.GUID=Schema1.Table1.GUID OR Schema3.Table3.GUID=Schema1.Table1.GUID
) AND (Schema2.Table2.MAINTITLE like '%water%' OR Schema3.Table3.MAINTITLE like '%water%')
но так как это подразумеваемое соединение, оно возвращает все строки таблицы2, где maintitle таблицы3 тоже как вода.
Могу ли я попросить помощи, пожалуйста?