gpt4 book ai didi

mysql - 选择并加入给出奇怪的结果

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

我有下面的查询,表面上看起来工作正常,但它给出了一些奇怪的结果,我不确定是数据问题还是查询本身有问题。

查询的形式为:

SELECT j.username, u.email, u.accountType
FROM users u JOIN
j_users j
ON j.email = u.email
WHERE j.email IN (select email FROM j_users);

users 表可能具有同一电子邮件地址的多个条目,但 accountType 会有所不同。然而,在 j_user 表中,email 是唯一的,奇怪的是查询显示的结果如下:

|bob  |bob@gmail.com  |admin|
|bob |bob@gmail.com |user |
| |bob@gmail.com |mod |
|steve|steve@gmail.com|admin|
| |steve@gmail.com|user |
| |steve@gmail.com|mod |

从查询中可以看出什么可以解释这一点吗?或者更好的方法来提取我感兴趣的数据(users 表中在 j_users 中拥有电子邮件的所有值)

编辑

感谢您指出冗余,但我的主要问题仍然存在,返回的结果集中的某些行没有用户名,但在 j_user 表中,这是必填字段,每行都有一个放。正如已经设置的那样,每个电子邮件在此表中也是唯一的,因此如果用户名在一行中显示,那么它肯定应该在具有相同电子邮件地址的所有行中显示?

最佳答案

此查询应该执行您想要的操作:

SELECT j.username, u.email, u.accountType
FROM users u JOIN
j_users j
ON j.email = u.email;

您的查询也应该有效,但它是多余的。您只是缺少 j_users 中的用户名。

关于mysql - 选择并加入给出奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49969763/

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