我的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/

10-10 06:38