Хорошо, что мне нужно сделать, это немного сложно, но я сделаю все возможное, чтобы объяснить.Итак, у меня есть такая таблица:
id ||цвет ||redOK ||blueOK ||yellowOK ||greenOK ||orangeOK
1- || ---- 1 --- || ---- 1 ----- || ----- 1 ----- || ------- 1 ------ || ------ 0 ------ || ------ 1 ------
2- ||---- 3 --- || ---- 1 ----- || ----- 0 ----- || ------- 1 ------ || ------ 1 ------ || ------ 1 ------
3- || ---- 1 --- || ---- 0 ----- || ----- 0 ----- || ------- 0 ------ || ------ 0 ------ || ------ 1 ------
4- || ---- 5 --- || ---- 1 ----- ||----- 1 ----- || ------- 0 ------ || ------ 1 ------ ------ ||1 ------
5- || ---- 2 --- || ---- 0 ----- || ----- 0 -----|| ------- 1 ------ || ------ 0 ------ || ------ 1 ------
В поле цвета цифры 1 - 5 представляют собой любимый цвет пользователя (1 для красного, 2 для синего, 3 для желтого, 4 для зеленого и 5 для оранжевого).Поля redOK, blueOk, yellowOK, greenOK и orangeOK представляют, хочет ли пользователь сопоставить кого-либо с определенным любимым цветом.В этих полях 1 представляет да, а 0 представляет нет.Так, например, пользователь с любимым цветом с id = 1 - красный, потому что его поле «color» - 1, и они готовы совпасть с кем-то, чей любимый цвет - красный, синий, желтый или оранжевый, но не зеленый, потому чтополе «greenOK» равно 0. Итак, мне нужно создать хранимую процедуру, которая возвращает запрос пользователям, цвет и предпочтения которых соответствуют цвету и предпочтениям конкретного пользователя.Так, например, пользователи с идентификаторами 1 и 2 будут совпадать, потому что пользователь 1 - красный, а пользователь 2 - что красный - нормально, а пользователь 2 - желтый, а пользователь 1 - желтый.С другой стороны, пользователи 3 и 2 не будут совпадать, потому что, хотя пользователь 3 красный, а пользователь 2 выбрал, что красный в порядке, пользователь 2 желтый, а пользователь 3 сказал, что только оранжевый в порядке.
Я думал об этой проблеме весь день, но не могу придумать решение.Моей первой мыслью было использование оператора SELECT INNER JOIN, но я не совсем уверен, как, поскольку существует так много возможных комбинаций?Затем я попытался создать временную таблицу с предпочтениями пользователя, а затем с помощью курсора перебрать эти предпочтения, проверяя, соответствуют ли предпочтения пользователя цвету целевого пользователя, но я также не смог понять это.Ребята, вы можете помочь?