Я застрял в Mysql ... Я уверен, что этот вопрос задавался сотни раз, но без каких-либо ключевых слов.У меня есть 2 таблицы и вид:
tbl_user_measure
measure_cat userid amount
------------------------------
7 1 78
5 1 96
4 1 78
tbl_itemcat_measure
measure_cat item_cat
----------------------
7 1
5 1
4 1
vw_allitems
measure_cat min max item_cat itemid
---------------------------------------------------
7 76 81 1 1
5 97 100 1 1
4 79 81 1 1
7 76 81 1 11
5 95 97.5 1 11
4 76 79 1 11
4 33 12 2 5
Что я ищуfor - это элемент (ы), чьи минимальные и максимальные значения совпадают во всех измерениях конкретного элемента item_cat со значениями пользователя (max> tbl_user_measure.amount> min).
Мой подход был
SELECT distinct
v.itemid,
v.measure_cat_id,
v.min,
v.max
FROM
vw_allitems v, tbl_user_measure um, tbl_user u
where
um.tbl_measure_category_id = v.measure_cat_id and
(um.amount >= v.min and um.amount <= v.max) and
v.productid = 1
Это приводит к:
itemid measure_cat_id min max
---------------------------------------------------
1 7 76 81
7 7 76 81
10 7 76 81
11 7 76 81
11 4 76 79
11 5 95 9
Что мне нужно, так это просто itemid '11', потому что его значения соответствуют всем категориям.