tblUserProfile - у меня есть таблица, которая содержит всю информацию профиля (слишком много полей)
tblMonthlyProfiles - еще одна таблица, в которой есть только ProfileID (идея состоит в том, что эта таблица содержит 2 профили, которые иногда становятся ежемесячными (при выборе))
Теперь, когда мне нужно показать месячные профили, я просто делаю выбор из этого tblMonthlyProfiles и присоединяюсь к tblUserProfile, чтобы получить всю достоверную информацию.
Если в tblMonthlyProfile нет строк, раздел месячного профиля не отображается.
Теперь необходимо ВСЕГДА показывать ежемесячные профили. Если в ежемесячных профилях нет строк, он должен выбрать 2 случайных профиля из tblUserProfile. Если в ежемесячных профилях есть только одна строка, она должна выбрать только одну случайную строку из tblUserProfile.
Каков наилучший способ сделать все это в одном запросе?
Я думал, что-то вроде этого
выберите топ 2 * из tblUserProfile P
СЛЕДУЮЩЕЕ НАРУЖНОЕ СОЕДИНЕНИЕ tblMonthlyProfiles M
на M.profileid = P.profileid
ЗАКАЗАТЬ по NEWID ()
Но это всегда дает мне 2 случайных строки из tblProfile. Как я могу решить это?