Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql内部联接未按预期工作_Mysql_Join_Inner Join - Fatal编程技术网

mysql内部联接未按预期工作

mysql内部联接未按预期工作,mysql,join,inner-join,Mysql,Join,Inner Join,很抱歉。关于这方面的帖子有一百万篇。不知怎么的,我还是错过了一些东西。简单的内部联接如下所示: 不知道问题是什么。只是尝试将组织添加到机器记录中。 我预计,如果用户名不匹配,机器记录将被删除,或者不会被删除,但无论如何,您可能希望在此处进行聚合,因为您将获得共享用户名的所有机器的笛卡尔积: select users2.org, machines.User_name, machines.Machine_name, machines.model fr

很抱歉。关于这方面的帖子有一百万篇。不知怎么的,我还是错过了一些东西。简单的内部联接如下所示:

不知道问题是什么。只是尝试将组织添加到机器记录中。
我预计,如果用户名不匹配,机器记录将被删除,或者不会被删除,但无论如何,您可能希望在此处进行聚合,因为您将获得共享
用户名的所有机器的笛卡尔积:

select users2.org, 
       machines.User_name,
       machines.Machine_name, 
       machines.model 
from machines 
inner join users2 on users2.user_name = machines.User_name
GROUP BY users2.org, machines.User_name, machines.Machine_name, machines.model

谢谢你的意见。问题在于,当数据被篡改时(1例中的用户名最初是电子邮件,另一例中是windows网络id),两个表中丢失的用户名都被更改为“”。这导致了我没有预料到的地方到处都是连接匹配。缺少的用户名字段应具有不同的默认值。我修复了machines表中的默认值,并用“where machines.User_name‘Unknown’;”排除了它们。现在我得到了我期望的结果。除了更好地理解您的数据,这里可能没有什么可学的

啊,再来一个。这有点简化,因为machines表在machine_名称上不是唯一的。实际上,有10到50条记录具有相同的机器名称,包括机器上软件的machines.program、machines.version。我想要所有的机器记录。你能分享你的模式吗?描述机器;机器名varchar(50)、用户名varchar(21)、模型varchar(50)、出版商varchar(100)程序varchar(255)版本varchar(255)产品ID varchar(255)描述用户2user|name | varchar(25)| org | varchar(5)am def在这里获得笛卡尔积。每个用户应该有一台机器。每个用户/机器在机器表中应有多条记录。每个表中的某些记录缺少实际用户名,但它们有一个默认值,如“missing”。是的,这就是您需要的
分组依据
,以减少重复值。您可以像我在回答中所做的那样,在加入
表之前聚合
机器
表。