gpt4 book ai didi

MYSQL 如果有其他表不显示第一个表

转载 作者:行者123 更新时间:2023-11-29 10:24:08 25 4
gpt4 key购买 nike

我有 2 个表,一个是用户表,另一个是 userLog 表

用户表

+-----+----------+-----------+--------+
| id | firtname | user_id | flag |
+-----+----------+-----------+--------+
| 62 | aaaa| 477183673 | 1 |
| 63 | aaaa | 475957614 | 1 |
| 64 | aaaa | 445874961 | 1 |
| 65 | aaaa | 143484840 | 1 |
| 66 | aaaa | 418110881 | 1 |
+-----+----------+-----------+--------+

用户日志表

+-----+-------+-----------+--------+
| id | su_id | user_id | action |
+-----+-------+-----------+--------+
| 62 | 3 | 477183673 | 1 |
| 63 | 3 | 475957614 | 1 |
| 64 | 2 | 445874961 | 1 |
| 65 | 1 | 143484840 | 1 |
| 66 | 1 | 418110881 | 1 |
+-----+-------+-----------+--------+

如果我选择 su_id = 3 然后显示这样的用户表,我想这样做

+-----+----------+-----------+--------+
| id | firtname | user_id | flag |
+-----+----------+-----------+--------+
| 64 | aaaa | 445874961 | 1 |
| 65 | aaaa | 143484840 | 1 |
| 66 | aaaa | 418110881 | 1 |
+-----+----------+-----------+--------+

如果用户执行任何操作而不是保存用户日志,之后我不想在第一个表上显示,为此选择我尝试一些连接,但不起作用,

SELECT * 
FROM user u
INNER JOIN userLog l
ON u.user_id = l.user_id
WHERE su_id !=3;

在此之后,我明白 join 不起作用,然后我在这里尝试其他方法:)

sqlfiddle

最佳答案

您需要更改选择以仅选择所需的列:

SELECT u.* FROM user u //instead of SELECT * FROM 
INNER JOIN userLog l
ON u.user_id = l.user_id
WHERE su_id !=3;

我们没有足够的数据来理解为什么上述方法不起作用,但也许您可以尝试通过 id 而不是 user_id 加入它

SELECT u.* FROM user u //instead of SELECT * FROM 
INNER JOIN userLog l
ON u.id = l.id
WHERE su_id !=3;

您还可以尝试此NOT IN查询

SELECT * FROM user  
where user_id not in
(select user_id from userLog where su_id = 3 )

这不应从您的日志表中获取任何重复项。

关于MYSQL 如果有其他表不显示第一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48630108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com