У меня есть таблица в моей SQL в следующей структуре называется действий:MySQL фильтр Результаты
+----+--------+------+---------+
| id | action | type | user_id |
+----+--------+------+---------+
| 1 | 5 | 4 | 1 |
| 2 | 6 | 4 | 1 |
| 3 | 5 | 4 | 2 |
| 4 | 0 | 0 | 2 |
| 5 | 0 | 1 | 2 |
+----+--------+------+---------+
и у меня есть таблица пользователей, например, так:
+----+------------+----------------------------------+----------+
| id | fullname | password | username |
+----+------------+----------------------------------+----------+
| 1 | Admin User | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | admin |
| 2 | Arthur | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | arthur |
| 3 | john | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | john |
+----+------------+----------------------------------+----------+
Я хочу, чтобы выбрать все действия из таблицы действий, за исключением действий администраторов, я пробовал:
SELECT * FROM actions WHERE user_id != 1;
Но это не работает в некоторых случаях поскольку admin user_id не всегда 1.
Как я могу выбрать все действия, кроме действий администратора, я попытался объединиться с JOINS, но не могу понять это.
Надеюсь, вы знаете, что я имею в виду.
Приветствие
Eef
Для того, чтобы ответить на этот вопрос, еще информация необходима. Самое главное: если у администратора не всегда есть user_id = 1, как узнать, является ли пользователь администратором. Должны ли мы использовать 'username = admin'? Как замечание: что означает 'тип'? Если в двух строках «действие» одно и то же, означает ли это, что «тип» - то же самое? Если это так, вы можете использовать отдельную таблицу для типов действий. – Martijn
Администратор всегда присутствует в системе, так как пользователь по умолчанию создается в процессе установки. – RailsSon