Я нашел похожий вопрос в stackoverflow, но это не совсем та проблема, с которой я сталкиваюсь сейчас. Я не смог найти лучшего способа описания требуемого запроса, чем следующий:
Выберите все записи, которые имеют хотя бы свойство one И свойство two AND ...
Рассмотрим следующие таблицы:
пользователи
| id | name |
+------+--------+
| 1 | john |
+------+--------+
| 2 | liu |
+------+--------+
спорт
| id | user_id | sport |
+------+-----------+------------+
| 1 | 1 | swim |
+------+-----------+------------+
| 2 | 1 | run |
+------+-----------+------------+
| 3 | 1 | football |
+------+-----------+------------+
| 4 | 1 | volley |
+------+-----------+------------+
| 5 | 2 | swim |
+------+-----------+------------+
| 6 | 2 | run |
+------+-----------+------------+
Я хотел бы иметь возможность задавать следующие запросы:
- Выбрать всех пользователей, которые только плавают (прямо)
Возвращает:
| id | name |
+------+--------+
| 1 | john |
+------+--------+
| 2 | liu |
+------+--------+
Выберите всех пользователей, которые могут плавать и бегать
Возвращает:
| id | name |
+------+--------+
| 1 | john |
+------+--------+
| 2 | liu |
+------+--------+
Выберите всех пользователей, которые могут плавать, бегать и играть в футбол
Возвращает:
| id | name |
+------+--------+
| 1 | john |
+------+--------+
Количество видов спорта должно быть динамическим c.
Спасибо.