Мне нужно выбрать топ 1 наиболее актуальную скидку для данного FriendId. У меня есть следующие таблицы:SQL Select with Priority
DiscountTable - описывает различные типы скидок
DiscountId, Percent, Type, Rank
1 , 20 , Friend, 2
2 , 10 , Overwrite, 1
Тогда у меня есть еще две таблицы (оба списка FriendIds)
Друзья
101
102
103
O verwrites
101
105
я должен выбрать верхнюю 1 наиболее действительной скидку для данного FriendId. Таким образом, для вышеуказанных данных это будет выход проб
Id = 101 => gets "Overwrite" discount (higher rank)
Id = 102 => gets "Friend" discount (only in friends table)
Id = 103 => gets "Friend" discount (only in friends table)
Id = 105 => gets "Overwrite" discount
Id = 106 => gets NO discount as it does not exist in neither Friend and overwrite tables
INPUT => SINGLE friendId (int).
OUTPUT => Single DISCOUNT Record (DiscountId, Percent, Type)
Таблицы перезаписей и друзей одинаковы. Они только держать список идентификаторов (одного столбца)
Где бы '106' пришел с тех пор? Являются ли структуры 'Friends' и' Overwrites' фактически идентичными или просто для целей вашего образца? –
С таким количеством очков, как вы здесь, вы должны знать, что вам нужно разместить больше информации, чем это. –
Не можете ли вы просто выбрать топ 1 [Столбцы] из [таблиц] по ID? –