我的SQL中有一个名为actions的表,其结构如下:
+----+--------+------+---------+
| 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 |
+----+------------+----------------------------------+----------+
我想从操作表中选择除admins操作之外的所有操作,我已经尝试过:
SELECT * FROM actions WHERE user_id != 1;
但这在某些情况下不起作用,因为管理员用户id不总是1。
我该如何选择除了管理操作之外的所有操作,我已经尝试过处理连接,但无法解决它。
希望你明白我的意思。
干杯
欧洲经济论坛
最佳答案
SELECT * FROM actions inner join users
on actions.user_id = users.id
WHERE users.username != "admin";
假设所有管理员都有用户名“admin”
关于sql - MySQL过滤结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2190889/