Альтернативный способ улучшить мой запрос MySQL? - PullRequest
1 голос
/ 25 апреля 2019

Есть ли лучший способ написать этот запрос?Он прекрасно работает на верстаке, но когда я запускаю его на JS, он не возвращает правильное значение.

Я хочу показать пользователям список всех элементов на основе их отфильтрованных настроек(основываясь на материале и дизайне выбранной категории).

Запрос:

SELECT COUNT(A.id)
FROM tbl_product A 
JOIN tbl_product_details B ON A.id = B.prod_id
JOIN tbl_category C ON A.id = C.prod_id
JOIN tbl_material D ON A.id = D.prod_id
JOIN tbl_design E ON A.id = E.prod_id
WHERE C.category_id IN (6) AND (D.material_id IN (15) OR E.design_id IN (39));

db structure looks like this

Я ожидаю, что результат будет (верстакрезультат):
COUNT (A.id): 42

Вместо этого он дает мне:
COUNT (A.id): 1582

1 Ответ

0 голосов
/ 25 апреля 2019

Я предполагаю, что вы хотите:

SELECT COUNT(DISTINCT A.id)

Возможно, есть и другие способы сформулировать запрос (в частности, используя EXISTS), но это самая простая модификация.

...