Извинения за заголовок вопроса, но не знают, какая функция может достичь того, что мне нужно.SQL: извлечение идентификаторов пользователей, которые выполнили действие
Для простоты, я ниже таблице:
UserID | date | action
----------------------------
1 | 1/1/2015 |
2 | 1/1/2015 |
2 | 2/1/2015 |
2 | 3/1/2015 |
2 | 4/1/2015 | sale
3 | 2/1/2015 |
3 | 4/1/2015 |
4 | 5/1/2015 |
4 | 7/1/2015 | sale
5 | 3/1/2015 | sale
6 | 4/1/2015 |
7 | 9/1/2015 | sale
Я хотел бы быть в состоянии выполнить запрос, где я исключит все UserIds, которые не в конечном итоге с каких-либо действий.
Поэтому я ожидал бы увидеть это:
UserID | date | action
----------------------------
2 | 1/1/2015 |
2 | 2/1/2015 |
2 | 3/1/2015 |
2 | 4/1/2015 | sale
4 | 5/1/2015 |
4 | 7/1/2015 | sale
5 | 3/1/2015 | sale
7 | 9/1/2015 | sale
Является ли это то, что может быть сделано в SQL?
'выберите * из таблицы, где Идентификатор_пользователь в (выберите UserID из таблицы, где действие не Null)' – TZHX
@TZHX. Более острой будет 'SELECT * FROM table WHERE UserID IN (SELECT ** DISTINCT ** UserID FROM table WHERE action NOT NOT). – cFreed
@cFreed Я бы подумал, что оптимизатор запросов позаботится об этом. Но я не обычный пользователь MySQL. – TZHX