У меня есть эта таблица с именем table
:
+-----+--------------------+----------+--------------+------+
| id | money | family | date | user |
+-----+--------------------+----------+--------------+------+
| 1 | credit card | 1 | 2018-01-04 | U123 |
| 2 | direct transfert | 1 | 2018-01-04 | U123 |
| 3 | Wire transfert | 1 | 2018-01-06 | U123 |
| 4 | Exchange | 2 | 2018-01-03 | U123 |
| 5 | free | 2 | 2018-01-03 | U123 |
| 6 | other | 3 | 2018-01-08 | U123 |
+-----+--------------------+----------+--------------+------+
Я хочу всегда получать результат по семье.Например, если я ищу date >= 2018-01-06
, я хочу получить эту таблицу:
+-----+--------------------+----------+--------------+------+
| id | money | family | date | user |
+-----+--------------------+----------+--------------+------+
| 1 | credit card | 1 | 2018-01-04 | U123 |
| 2 | direct transfert | 1 | 2018-01-04 | U123 |
| 3 | Wire transfert | 1 | 2018-01-06 | U123 |
| 6 | other | 3 | 2018-01-08 | U123 |
+-----+--------------------+----------+--------------+------+
Я пробовал этот запрос:
SELECT e.*
FROM table e
WHERE e.user ='U123' AND e.family IN
(
SELECT e2.family
FROM table e2
WHERE (e2.date >= "2018-01-06")
)
ORDER BY family;
Но я получаю этот результат:
+-----+--------------------+----------+--------------+------+
| id | money | family | date | user |
+-----+--------------------+----------+--------------+------+
| 1 | credit card | 1 | 2018-01-04 | U123 |
| 2 | direct transfert | 1 | 2018-01-04 | U123 |
| 3 | Wire transfert | 1 | 2018-01-06 | U123 |
| 4 | Exchange | 2 | 2018-01-03 | U123 |
| 5 | free | 2 | 2018-01-03 | U123 |
| 6 | other | 3 | 2018-01-08 | U123 |
+-----+--------------------+----------+--------------+------+
Вы видите, что идентификационный номер 4
и 5
не должен быть там.
Кроме того, я хочу иметь возможность добавить другие условия, подобные этому:
SELECT e.*
FROM table e
WHERE e.user ='U123' AND e.family IN
(
SELECT e2.family
FROM table e2
WHERE (e2.date >= "2018-01-06")
AND (e2.money like "%transf%")
)
ORDER BY family;
И еще есть результаты по семье.