У меня сейчас есть база данных с тремя таблицами: equipements и equipements_statistics, которая содержит статистику каждого оборудования и, наконец, статистику, которая содержит статистику всех типов.
Чтобы получить оборудование на фильтре, который я делаюэтот запрос:
SELECT
*
FROM
`equipement`
INNER JOIN `equipement_stats` ON `equipement_stats`.`id_equipement` = `equipement`.`id_equipement`
INNER JOIN `stats` ON `stats`.`id_stats` = `equipement_stats`.`id_stats`
WHERE
`stats`.`id_stats` IN(1068, 1069)
GROUP BY
`equipement`.`id_equipement`
HAVING
COUNT(DISTINCT stats.id_stats) = 1
LIMIT 10
Таблицы похожи на это:
equipement
+---------------+-----------------+
| id_equipement | name_equipement |
+---------------+-----------------+
| 1 | one |
| 2 | two |
| 3 | three |
+---------------+-----------------+`
equipement_stats
+---------------+-----------+---------------+
| id_equipement | id_stats | random_number |
+---------------+-----------+---------------+
| 1 | 2 | 0 |
| 1 | 4 | 0 |
| 1 | 1069 | 1 |
| 1 | 8 | 0 |
| _____________ | _________ | _____________ |
| 2 | 1070 | 2 |
| 2 | 1069 | 3 |
| 2 | 20 | 0 |
| 2 | 40 | 0 |
+---------------+-----------+---------------+
Если статистика 1068 или 1069 Iнужно отфильтровать их по столбцу random_number
, но значение random_number
может быть разным для 1070 и 1069. Как искать только точные id_stats с точным random_number?
В моем случае, например, я хотел быфильтровать оборудование, имеющее статистику 1070 со значением random_number 2 и статистику 1069 со значением random_number 3 в качестве второй записи.
Спасибо за помощь!