sql запрос на поиск подходящих вариантов
Не могу понять, как реализовать код, с помощью которого пользователь по заявке клиента сможет подобрать для него подходящие варианты квартир, то есть должны выводится те квартиры, где город и район будут совпадать (на этажи и все остальное прошу не обращать внимание), через join не получается :( 
SELECT idflat,
.district.districtname,
cityname
FROM house
JOIN flat
ON house.idhouse = flat.idhouse
JOIN district
ON house.districtname = district.districtname
Ответы (1 шт):
Я даже спорить с Вами не хочу. Выкладывать кусок неотформатированного нерабочего кода - проявление неуважения к сообществу. Просто посоветую:
- Ещё раз изучите тему с join`ами - вы их не понимаете от слова "совсем".
- Раз уж вы решили писать join - указывайте его тип (inner/left & etc). - вам без разницы, а читабельность кода повышается (в случае с sql server - это ещё и рекомендация от производителя - Microsoft).
- Раз уже используете sql server - указывайте схему (dbo/tst & etc.), в которой размещены таблицы, чтобы не было проблем с соседними схемами в одной БД.
- Раз уж выкладываете код - прогоните его предварительно через какой-нибудь sql beautifier (есть масса онлайн решений как минимум), потому что это сразу бы показало вам ошибку в куске
.District.DistrictName
где первая точка - причина ошибки и отвечающим на ваш вопрос было бы проше оценить правильность вашего решения.
Я конечно понимаю, что вы сюда не за знаниями а за быстрым решением пришли и проигнорируете моё сообщение, но чтобы вы его прочли хотя бы 1 раз и постарались к отвечающим относится с уважением - размещу ниже правильный ответ на ваш вопрос.
SELECT k.* FROM dbo.[Квартира] AS k INNER JOIN dbo.[Дом] AS d ON k.[Регистрационный номер дома FK] = d.[Регистрационный номер дома PK] INNER JOIN dbo.[Район] AS r ON d.[Район FK] = r.[Наименование района PK] INNER JOIN dbo.[Город] AS g ON r.[Город FK] = g.[Наименование PK] WHERE g.[Наименование PK] = '<Имя города>' AND r.[Наименование района PK] = '<Имя района>';Вы для себя внезапно открыли алиасы ;-)