sql запрос на поиск подходящих вариантов

Не могу понять, как реализовать код, с помощью которого пользователь по заявке клиента сможет подобрать для него подходящие варианты квартир, то есть должны выводится те квартиры, где город и район будут совпадать (на этажи и все остальное прошу не обращать внимание), через join не получается :( Такая вот модель получилась

SELECT idflat,
       .district.districtname,
       cityname
FROM   house
       JOIN flat
         ON house.idhouse = flat.idhouse
       JOIN district
         ON house.districtname = district.districtname 

Ответы (1 шт):

Автор решения: Rustam Aliev

Я даже спорить с Вами не хочу. Выкладывать кусок неотформатированного нерабочего кода - проявление неуважения к сообществу. Просто посоветую:

  1. Ещё раз изучите тему с join`ами - вы их не понимаете от слова "совсем".
  2. Раз уж вы решили писать join - указывайте его тип (inner/left & etc). - вам без разницы, а читабельность кода повышается (в случае с sql server - это ещё и рекомендация от производителя - Microsoft).
  3. Раз уже используете sql server - указывайте схему (dbo/tst & etc.), в которой размещены таблицы, чтобы не было проблем с соседними схемами в одной БД.
  4. Раз уж выкладываете код - прогоните его предварительно через какой-нибудь sql beautifier (есть масса онлайн решений как минимум), потому что это сразу бы показало вам ошибку в куске

.District.DistrictName

где первая точка - причина ошибки и отвечающим на ваш вопрос было бы проше оценить правильность вашего решения.

  1. Я конечно понимаю, что вы сюда не за знаниями а за быстрым решением пришли и проигнорируете моё сообщение, но чтобы вы его прочли хотя бы 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] = '<Имя района>';
    
  2. Вы для себя внезапно открыли алиасы ;-)

→ Ссылка